Mike Blumenkrantz
292ade3c9d
zink: use int assignment for vk int type
...
this breaks 32bit builds that use -Werror=int-conversion
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5545 >
2020-06-19 17:31:51 +00:00
Rob Clark
8f11cc4cad
freedreno/ir3: move output_loc to variant
...
This moves the last bit of important state to be serialized 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
640ff0e847
freedreno/ir3: move const_state back to variant
...
For shader-cache, we want to not have anything important in `ir3_shader`.
And to have shader variants with lower const size limits (to properly
handle cross-stage limits), we also want variants to be able to have
their own const_state.
But we still need binning pass shaders to align with their draw pass
counterpart so that the same const emit can be used for both passes.
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
00926954c3
freedreno/ir3: un-embed const_state
...
Make it an rzalloc'd ptr instead of embedded struct, so it can serve as
the mem ctx for immediates. This gets rid of needing to explicitly free
the immediates, so one less thing to deal with when moving const_state.
(Also, after we move const_state to the shader variant, we won't need
one for binning pass variants)
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
ab74b792d4
freedreno/ir3: move num_reserved_user_consts out of const_state
...
When we move const_state to the variant, this will need to stay in the
shader, as it applies to all variants (and we need to store it somewhere
before we have any variants)
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
74140c2e85
freedreno/ir3: convert over to ralloc
...
The `ir3_shader` is the root mem ctx, with `ir3_shader_variant` hanging
off that, and various variant specific allocations hanging off the
variant.
This lets us delete a bunch of cleanup code.
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
6039d083f7
freedreno/ir3: pass variant to ir3_create()
...
Prep to convert over to ralloc.
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
Connor Abbott
65660622a1
ir3: Split out variant-specific lowering and optimizations
...
It seems a lot of the lowerings being run the second time were
unnecessary. In addition, when const_state is moved to the variant,
then it will become impossible to know ahead of time whether a variant
needs additional optimizing, which means that ir3_key_lowers_nir() needs
to go away. The new approach should have the same effect, since it skips
running lowerings that are unnecessary and then skips the opt loop if no
optimizations made progress, but it will work better when we move
ir3_nir_analyze_ubo_ranges() to be after variant creation.
The one maybe controversial thing I did is to make
nir_opt_algebraic_late() always happen during variant lowering. I wanted
to avoid code duplication, and it seems to me that we should push the
_late variants as far back as possible so that later opt_algebraic runs
don't miss out on optimization opportunities.
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
f4654c458f
freedreno/ir3: constify shader key
...
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
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