Boris Brezillon
89fafe9e92
panfrost: XML-ify the fragment job descriptor
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
9121e7daaf
panfrost: XML-ify the write value job descriptor
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
eb923548c5
panfrost: XML-ify the job header descriptor
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
5d5f7552a5
panfrost: XML-ify the multi-target framebuffer descriptors
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
efce73d99d
panfrost: XML-ify the bifrost tiler descriptors
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
95eb7d9a34
panfrost: XML-ify the single target framebuffer descriptor
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
e855698ddd
panfrost: XML-ify the midgard tiler descriptor
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
fb95729b69
panfrost: Add Tiled linear mode to the Block Format enum
...
Add it for completeness.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
76096c723a
panfrost: Clarify what TILED mode is
...
We have 2 tile modes: tiled linear and tiled U-interleaved. Let's rename
the existing value to clarify that.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
3a06fc3d34
panfrost: XML-ify the local storage descriptor
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
706974ce17
panfrost: decode: Use pan_{unpack,print}() when applicable
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
aa2670c7fb
panfrost: decode: Add a macro to dump unpacked descriptors
...
And use it where it makes sense.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
670e818f90
panfrost: decode: Rework the DUMP_{CL,ADDR}() macros
...
We don't need to pass the indentation level explicitly if we use
pandecode_log() instead of fprintf(). This helps keeping a consistent
indentation across descriptors.
While at it, let's rework those macros to allow creating titles from
a format string.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
6249ae79d3
panfrost: decode: Make the indentation consistent with auto-generated print helpers
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:45 -04:00
Boris Brezillon
fd0941c573
panfrost: gen_pack: Allow enum/define values expressed in hexadecimal
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:44 -04:00
Boris Brezillon
51d5d44953
panfrost: gen_pack: Add a log2 modifier
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Suggested-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:35:36 -04:00
Boris Brezillon
718b521f56
panfrost: gen_pack: Add an align() modifier
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:52 -04:00
Boris Brezillon
1b27817f17
panfrost: gen_pack: Allow empty structs
...
This is useful if we want to declare padding sections which can be
packed (filled with zeros) and unpacked (checked for non zero entries).
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:51 -04:00
Boris Brezillon
c7a10193d4
panfrost: gen_pack: Add the aggregate concept
...
Panfrost descriptors are big and are usually built from a combination of
sub-descriptors. On top of that, layout of sub-descriptors might vary
depending on the architecture version. Since unions are not really an
option (too complex), here is a thin abstraction layer allowing us to
manipulate aggregates in their packed format. Each aggregate is formed
of one or more sections that are meant to be packed/unpacked/printed
separately. Section overlapping is allowed to facilitate handling of
descriptor variants.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:49 -04:00
Boris Brezillon
fa7d0974fb
panfrost: gen_pack: Move the group get_length() logic to its own method
...
So we can re-use it elsewhere.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:48 -04:00
Boris Brezillon
62c0ef06c8
panfrost: gen_pack: Add pan_{unpack,print}() helpers
...
And use them in pandecode.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:47 -04:00
Boris Brezillon
ddd82c3ab8
panfrost: gen_pack: Fix __gen_unpack_uint()
...
The mask should be a 64-bit value and we should promote cl bytes to u64
before shifting them.
Fixes: 75cc5b8c29 ("panfrost: Adopt gen_pack_header.py via v3d")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:44 -04:00
Boris Brezillon
66f25dd210
panfrost: gen_pack: Minor formatting improvement
...
Escape the \ in pan_pack() so the end result is actually a multi-line
macro.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797 >
2020-09-21 07:34:41 -04:00
Icecream95
2aa5838730
Revert "panfrost: Drop implicit blend pooling"
...
This reverts commit dc7fbe114b .
Fixes INSTR_INVALID_PC faults with the SuperTuxKart advanced rendering
pipeline, which occurred when blend shader BOs were allocated far apart.
Fixes: dc7fbe114b ("panfrost: Drop implicit blend pooling")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6785 >
2020-09-21 11:13:36 +00:00
Bas Nieuwenhuizen
8ae4cec95f
Revert "radv: emit {CB,DB}_RMI_L2_CACHE_CONTROL at framebuffer time"
...
This reverts commit d6bc0f26c9 .
These registers are now constant.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6726 >
2020-09-21 10:34:46 +00:00
Bas Nieuwenhuizen
0a84c595c2
Revert "radv: set BIG_PAGE to improve performance on GFX10.3"
...
This reverts commit f4d861696d .
Turns out we cannot use BIG_PAGE with GTT and we can't tell
when a buffer is spilled to GTT.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6726 >
2020-09-21 10:34:46 +00:00
Bas Nieuwenhuizen
d78df70c2a
radv,radeonsi: Disable compression on interop depth images
...
If we want to use HTILE correctly we need to communicate extra stuff
like clear colors. (Unlike DCC there is no HTILE FCE)
CC: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6617 >
2020-09-20 23:51:58 +00:00
Bas Nieuwenhuizen
ecc19e9819
ac/surface: Fix depth import on GFX6-GFX8.
...
Lets just do depth interop imports by convention between radv and
radeonsi for now. The only thing using this should be Vulkan interop
anyway.
CC: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6617 >
2020-09-20 23:51:58 +00:00
Jason Ekstrand
f63ffc18e7
intel/fs/swsb: SCHEDULING_FENCE only emits SYNC_NOP
...
It's not really unordered in the sense that it can still stall on
ordered things and we don't need a SYNC_NOP for that because it is a
SYNC_NOP. However, it also doesn't count when computing instruction
distances.
Fixes: 18e72ee210 "intel/fs: Add FS_OPCODE_SCHEDULING_FENCE"
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6781 >
2020-09-20 14:43:40 +00:00
Jason Ekstrand
e1fc23265f
nir: Add a pass for lowering CL-style image ops to texture ops
...
In CL 1.2, images are required to be either read-only or write-only. We
can always translate the read-only image ops to texture ops. In CL 2.0
(and an extension), the ability is added to have read-write images but
sampling (with a sampler) is only allowed on read-only images. As long
as we only lower read-only images to texture ops, everything should stay
consistent.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6578 >
2020-09-20 14:28:13 +00:00
Jason Ekstrand
3fc425b355
spirv: Plumb access qualifiers through from image types
...
In SPIR-V, the access qualifiers for an image are provided on the image
type. Assuming no one swaps the types around on us (I think that should
be illegal), this means we can reliably fetch the access qualifiers from
the type itself. The ops which don't really have an easy-to-fetch type
are the atomics because they use OpImageTexelPointer. However, those
are only allowed on read/write images and that's the default.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6578 >
2020-09-20 14:28:13 +00:00
Jason Ekstrand
1e902102c4
spirv: Access qualifiers are not a bitfield
...
They're an actual enum. My bad.
Fixes: de36b5b805 "nir/vtn: Add support for kernel images to SPIRV-to-NIR"
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6578 >
2020-09-20 14:28:13 +00:00
Jason Ekstrand
afa5c2e993
clover: Pull the stride from pipe_transfer for image maps
...
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6578 >
2020-09-20 14:28:13 +00:00
Icecream95
27516baa2a
pan/mdg: Use nir_shader_instructions_pass for fdot2 lowering
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6718 >
2020-09-20 01:39:15 +00:00
Icecream95
7a348b43f2
pan/mdg: Use nir_shader_instructions_pass for nir_lod_errata
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6718 >
2020-09-20 01:39:15 +00:00
Icecream95
6064b8ee14
pan/mdg: Return a bool from midgard_nir_lod_errata
...
To match other NIR passes.
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6718 >
2020-09-20 01:39:15 +00:00
Icecream95
7acf364131
panfrost: Set modifier_constant to true for exported resources
...
Not actually seen in the wild but could theoretically be a problem for
applications that explicitly import/export resources.
v2: Set it on exporting as well as importing (Daniel Stone)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6717 >
2020-09-20 01:28:50 +00:00
Erico Nunes
95ee0ba41f
lima: fix vertex shader uniform buffer size
...
In some cases when switching shader programs, mesa does not switch the
currently set pipe_constant_buffer, which keeps pointing to the one
previously set.
If the two shader programs have a different number of uniforms, the size
of the constant buffer may be different and this needs to be considered
while generating the next draw command.
This patch fixes the uniform buffer creation in the lima vertex shader
command to avoid an out of bounds memcpy due to a previously set
pipe_constant_buffer.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6701 >
2020-09-19 11:53:28 +02:00
Erico Nunes
6a1926035b
lima: allocate new bo for stream draw
...
In stream draws, the resource bo might be in use in a previous draw.
Allocate a new one for the resource to avoid overwriting data in use.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6503 >
2020-09-19 09:41:33 +00:00
Bas Nieuwenhuizen
017ca86b22
radeonsi: Move display dcc dirty tracking to framebuffer emission.
...
To improve performance.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6783 >
2020-09-19 03:15:28 -04:00
Bas Nieuwenhuizen
c6c1fa9a26
radeonsi: Put retile map in separate buffers.
...
The retile maps are a software mechanism and hence very suceptible
to change. As such I'd like to avoid making it part of the cross
driver ABI.
Ideally we'd just use the cached tile info + a shader to avoid these
buffers altogether.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6783 >
2020-09-19 03:15:25 -04:00
Bas Nieuwenhuizen
be48cf804b
amd/common: Store non-displayable DCC pitch.
...
For DRM planes with modifiers.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6783 >
2020-09-19 03:15:14 -04:00
Qiang Yu
4656e68294
radeonsi: fix user fence GPU address
...
User fence should have 4 QWORD memory space, I updated its CPU address
but forgot to update GPU address.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3513
Fixes: 3d5bed0e88 "radeonsi: fix user fence space when MCBP is enabled"
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6776 >
2020-09-19 03:11:21 +00:00
Jesse Natalie
9aa86eb61a
glsl_type: Add packed to structure type comparison for hash map
...
Fixes: 659f333b3a "glsl: add packed for struct types"
Reviewed-by: Marek Olák <marek.olsak@amd.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6767 >
2020-09-18 19:33:00 +00:00
Pierre-Loup A. Griffais
7b4eaac6a9
radv: fix vertex buffer null descriptors
...
Fixes: 0f1ead7b53 "radv: handle NULL vertex bindings"
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6773 >
2020-09-18 17:12:40 +00:00
Pierre-Loup A. Griffais
ec13622ff4
radv: fix null descriptor for dynamic buffers
...
Fixes: c1ef225d18 "radv: handle NULL descriptors"
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6772 >
2020-09-18 16:30:17 +00:00
Pierre-Eric Pelloux-Prayer
090fc593b4
mesa: fix glUniform* when a struct contains a bindless sampler
...
Small example from #3271 :
layout (bindless_sampler) uniform;
struct SamplerSparse {
sampler2D tex;
vec4 size;
[...]
};
uniform SamplerSparse foo;
'foo' will be marked as bindless but we should only take the assign-as-GLuint64 path for 'tex'.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3271
Fixes: 990c8d15ac ("mesa: fix setting uniform variables for bindless samplers/images")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6730 >
2020-09-18 07:52:06 +00:00
Christian Gmeiner
77af1ca690
etnaviv: add disk cache
...
Adds a shader disk-cache for shader variants. Note that builds with
`-Dshader-cache=false` have no-op stubs with `disk_cache_create()` that
returns NULL.
This shader disk-cache gets used when using NIR only. Helps to save
about 1-2 minutes for a deqp run on gc2000.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6669 >
2020-09-18 07:45:11 +00:00
Christian Gmeiner
6a0d7f6316
etnaviv: shuffle some variant fields
...
Just to group together the parts that will get serialized when we have
shader disk-cache.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6669 >
2020-09-18 07:45:11 +00:00
Michel Zou
12b8ad8f21
swr: fix _BitScanForward64 on unix
...
it must apply to 64 bits types, and use the ctzll intrinsic instead of ctz
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Reviewed-by: Krzysztof Raszkowski <krzysztof.raszkowski@intel.com >
Reviewed-by: Jan Zielinski <jan.zielinski@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6705 >
2020-09-18 06:24:00 +00:00