Rob Clark
91ed8b7fe3
freedreno/ir3: drop shader->num_ubos
...
The only difference between this and `const_state->num_ubos` was that
the latter is counting # of ubos loaded via `ldg` (based on UBO addrs
in push-consts). But turns out there isn't really any reason to care.
Instead just add an early return in the one code-path that cares about
the number of `ldg` UBOs.
This gets rid of one more thing we need to move from `ir3_shader` to
`ir3_shader_variant`.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5508 >
2020-06-19 13:16:57 +00:00
Rob Clark
70fbd48b3a
freedreno/ir3: move ubo_state into const_state
...
As with const_state, this will also need to move into the variant. To
simplify that, just move it into the const_state itself, since after all
it is related.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5508 >
2020-06-19 13:16:57 +00:00
Rob Clark
a8b995c055
freedreno/a6xx: defer userconst cmdstream size calculation
...
The `ubo_state` will also need to move to `ir3_shader_variant`. But we
can prepare for that and simplify things a bit if we calculate the
cmdstream on first emit, once we already have the appropriate variant.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5508 >
2020-06-19 13:16:57 +00:00
Rob Clark
bd55533f5b
freedreno/ir3: add accessor for const_state
...
We are going to want to move this back to the variant, and come up with
a different strategy for binning/nonbinning to share the same constant
layout, in order to implement shader-cache support. (Since then we
can have a mix of dynamically compiled variants and cache hits, so there
is no good place to serialize the const-state.)
To reduce the churn as we re-arrange things, move direct access to the
const-state to a helper fxn. This patch is the boring churny part.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5508 >
2020-06-19 13:16:57 +00:00
Rob Clark
1e8808a4a0
freedreno/ir3: refactor out helper to compile shader from asm
...
Deduplicate a bit of hand-building of ir3_shader/_variant from
computerator and delay test. This also removes the need for
external things to depend on generated ir3_parser header.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5508 >
2020-06-19 13:16:57 +00:00
Pierre-Eric Pelloux-Prayer
b6db703e0f
st/mesa: make texture views inherit compressed_data storage
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2775
Fixes: c3fafa127a ("st/mesa: generalize code for the compressed texture map/unmap fallback")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5492 >
2020-06-19 10:39:08 +02:00
Pierre-Eric Pelloux-Prayer
993c64e6fe
ac/llvm: load 1 byte at a time if unaligned on gfx10
...
If buffer or stride is unaligned we use the same trick as on gfx6:
load 1 byte at a time and recompose the output if needed.
This change fixes lots of deqp/glcts tests:
- dEQP-GLES2.functional.draw.random.1, 10, ...
- dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_17, ...
- dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride2_quads256, ...
- dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte2_vec4_dynamic_draw_quads_1, ...
- dEQP-GLES31.functional.draw_indirect.random.14, ...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5502 >
2020-06-19 09:20:16 +02:00
Gert Wollny
bddfbfcb56
r600/sfn: Handle memory_barrier
...
I'm not sure whether this should actually be a barrier accross all
shader processing units, the TGSI code path seems to handle this
only by using GROUP_BARRIER, so let's do the same here.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5206 >
2020-06-19 06:58:07 +00:00
Gert Wollny
34e15cd610
r600/sfn: Take SSBO buffer ID offset into account
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5206 >
2020-06-19 06:58:07 +00:00
Gert Wollny
5aef9ea2a3
r600/sfn: Add support for reading cube image array dim.
...
The cube array size can't be queried directly, the number of array
elements must be passed via a constant buffer.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5206 >
2020-06-19 06:58:07 +00:00
Gert Wollny
e458683a52
r600/sfn: Add support for image_size
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5206 >
2020-06-19 06:58:07 +00:00
Gert Wollny
249dbcb769
r600/sfn: Add imageio support
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5206 >
2020-06-19 06:58:07 +00:00
Gert Wollny
b303540c48
r600/sfn: lower image derefs
...
v2: Signal lowering image derefs by using the CAP
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5206 >
2020-06-19 06:58:07 +00:00
Samuel Pitoiset
2ac5cce1a1
radv: require LLVM 11+ for GFX 10.3 if not using ACO
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5389 >
2020-06-19 08:18:43 +02:00
Samuel Pitoiset
dc698fb5dc
radv: add support for Sienna Cichlid
...
Bits copied from RadeonSI. Totally untested.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5389 >
2020-06-19 08:18:41 +02:00
Samuel Pitoiset
8c144482ea
aco: replace == GFX10 with >= GFX10 where it's needed
...
Assume the GFX10.3 ISA is similar to GFX10 which is likely (except
possible minor changes and new instructions for raytracing).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5389 >
2020-06-19 08:18:39 +02:00
Samuel Pitoiset
3c28438094
radv: replace == GFX10 with >= GFX10 where it's needed
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5389 >
2020-06-19 08:18:37 +02:00
Matt Turner
1f87106276
intel/tools: Add assembler tests for the cr0 register
...
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5514 >
2020-06-19 02:10:40 +00:00
Matt Turner
e573f21edd
intel/tools: Disallow control subregisters > 3
...
> 4 was probably a typo, since the documentation says that there are 4
subregisters (0-3).
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5514 >
2020-06-19 02:10:40 +00:00
Matt Turner
cc6fc963f0
intel/tools: Require explicit regions/types for special regs
...
The docs say that these registers should only be read with a certain
type, and I'm inclined to believe that the hardware behaves that way,
but it makes the assembler a little more confusing and also confuses the
user of the assembler that some operands don't take types or regions.
Just always requiring regions and types seems like the sensible thing.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5514 >
2020-06-19 02:10:40 +00:00
Matt Turner
9feb6302f9
intel/tools: Drop srctype from ipreg
...
It's unused, and it would cause shift/reduce conflicts after the next
patch.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5514 >
2020-06-19 02:10:40 +00:00
Matt Turner
27557e7110
intel/tools: Remove unnecessary reg number checking
...
a0 is the only address register, and cr0 is the only control register,
so there's no need to return the register number, espcially since the
lexer explicitly consumes "a0" and "cr0".
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5514 >
2020-06-19 02:10:40 +00:00
Jonathan Marek
f8110226ba
turnip: move enum translation functions to a common header
...
Instead of having these functions sprinkled around the driver (and ending
with a duplicated tu6_compare_func for example), move everything to a
common header (using the previously unused tu_util.h).
Also applied some simplifications: using a cast when the HW enum matches
the VK enum, and using a lookup table when it makes sense (which is IMO
nicer than the switch case way).
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5538 >
2020-06-18 19:45:44 +00:00
Rhys Perry
f7cc7079b0
aco: use the same regclass as the definition for undef phi operands
...
Subdword phis can't have SGPR operands on GFX6-8.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5544 >
2020-06-18 17:29:33 +00:00
Rhys Perry
897a47d847
aco: fix edge check with sub-dword temporaries
...
Fixes RA failure for a parallel-rdp shader on pitcairn.
fossil-db (Navi):
Totals from 2 (0.00% of 128733) affected shaders:
CodeSize: 203656 -> 205724 (+1.02%)
Instrs: 32267 -> 32529 (+0.81%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5544 >
2020-06-18 17:29:33 +00:00
Erik Faye-Lund
747e808697
mesa/main: fix inverted condition
...
I accidentally got one of the conditions wrong here. Sorry for the
mixup.
See ttps://gitlab.freedesktop.org/mesa/mesa/-/issues/3134 for details.
Fixes: b112e62ba4 ("mesa/main: do not allow MESA_ycbcr_texture enums on gles")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5532 >
2020-06-18 17:07:14 +00:00
Karol Herbst
4bc5110eea
nv50/ir/nir: remove image uniform hack
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480 >
2020-06-18 15:15:17 +00:00
Karol Herbst
c0bbca5c23
nv50/ir/nir: handle image atomic inc and dec
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ben Skeggs <bskeggs@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480 >
2020-06-18 15:15:17 +00:00
Karol Herbst
3af27bb7de
nv50/ir/nir: move away from image_deref intrinsics
...
v2: fix lod source of image operation correctly
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480 >
2020-06-18 15:15:17 +00:00
Karol Herbst
feb83f2f82
nir/lower_images: handle dec and inc
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480 >
2020-06-18 15:15:17 +00:00
Karol Herbst
43faa9ebb1
nir/lower_images: fix for array of arrays
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480 >
2020-06-18 15:15:17 +00:00
Karol Herbst
e35e0307cb
st/mesa: lower images when needed
...
The "st/pbo download FS" builtin shader uses image derefs, so even with
PIPE_CAP_NIR_IMAGES_AS_DEREF set to 0 drivers ended up with those.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480 >
2020-06-18 15:15:17 +00:00
Rhys Perry
365d0aa6c5
aco: shrink mad_info
...
From 24 bytes to 16 bytes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5281 >
2020-06-18 14:26:01 +00:00
Rhys Perry
917260710f
aco: make ssa_info::label 64-bit
...
We'll probably need these extra bits in the future.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5281 >
2020-06-18 14:26:01 +00:00
Rhys Perry
47ca84a96d
aco: shrink ssa_info
...
Reorder members so that it's 16 bytes instead of 24.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5281 >
2020-06-18 14:26:01 +00:00
Boyuan Zhang
19983d3d4a
radeon/vcn: bump vcn3.0 encode major version to 1
...
And add quality params for this version
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5501 >
2020-06-18 09:58:04 -04:00
Boyuan Zhang
2be131f538
radeon/vcn/enc: Re-write PPS encoding for HEVC
...
Due to hardware change on VCN3
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5501 >
2020-06-18 09:58:03 -04:00
Thong Thai
9d5d4f9eaa
radeon/vcn: add vcn 3.0 encode support
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5501 >
2020-06-18 09:58:03 -04:00
Leo Liu
946c5c6b75
radeon/vcn/dec: add db_aligned_height to message buffer
...
This is required for Sienna
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5501 >
2020-06-18 09:58:03 -04:00
Leo Liu
384195b041
radeon/vcn: add Sienna to use internal register offset
...
And re-group them explicitly
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5501 >
2020-06-18 09:58:03 -04:00
Leo Liu
909037b557
radeon/vcn: reset the decode flags from message buffer
...
This flag was never used by VCN previously, and now
it's used for feature that is not applied to us.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: James Zhu <James.Zhu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5501 >
2020-06-18 09:58:03 -04:00
Daniel Schürmann
3817fa7a4d
aco: fix WQM handling in nested loops
...
If on a nested loop
- the outer loop needs WQM but
- the inner loop doesn't need WQM and
- the break condition of the inner loop is computed in the outer loop
then it could happen that we transitioned to Exact before entering the inner loop
which could create an empty exec mask and lead to an infinite loop.
Fixes a GPU hang with RDR2
Cc: 20.1 <mesa-stable@lists.freedesktop.org >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5518 >
2020-06-18 13:40:15 +00:00
Danylo Piliaiev
8ce8895b69
st/mesa: account for "loose", per-mipmap level textures in CopyImageSubData
...
We may have "loose", per-image gallium resources. The src_image->Level
may not match the gallium resource texture level. In such case it is
prescribed (in st_AllocTextureImageBuffer) to specify mipmap level
as zero.
Fixes: f04f13622f
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5477 >
2020-06-18 11:44:14 +00:00
Gurchetan Singh
9760a7ed91
virgl: apply bgra dest swizzle and add Portal 2
...
Apply the destination swizzle on GLES games based on HL2 engine.
Also add Portal 2 since some people are experiencing issues with
that.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5481 >
2020-06-18 10:35:52 +00:00
Jonathan Marek
c95b250a4c
turnip: set the API version
...
Some CTS tests don't run because of this.
Fixes: 91c757b796 ("turnip: use the common code for generating extensions and dispatch tables")
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5522 >
2020-06-18 09:54:48 +00:00
Samuel Pitoiset
fa149b996d
radv: only requires LLVM 9 for GFX10 if not using ACO
...
In case someone links RADV with LLVM 8 and wants to use ACO.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5454 >
2020-06-18 09:45:20 +00:00
Samuel Pitoiset
70cc80805c
radv: compute CB_SHADER_MASK from the fragment shader outputs
...
The fragment shader doesn't necessarily output the number of components
expected by the target format.
Fixes new dEQP-VK.draw.output_location.*.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5427 >
2020-06-18 09:16:04 +00:00
Samuel Pitoiset
b848d88059
radv: make sure to set CB_SHADER_MASK correctly for internal CB operations
...
It should be always set to 0xf.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5427 >
2020-06-18 09:16:04 +00:00
Samuel Pitoiset
c4aa64b4c3
radv: lower discards to demote to workaround a RDR2 game bug
...
This fixes some sort of LOD issue.
Cc: 20.1 <mesa-stable@lists.freedesktop.org >
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5525 >
2020-06-18 08:39:28 +02:00
Rob Clark
34499de5b3
glsl_to_nir: fix vote_any/vote_all
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5505 >
2020-06-18 03:40:54 +00:00