Rohan Garg
9e5d7eb88d
compiler/types: add a bfloat16 type
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34105 >
2025-04-29 16:29:36 +00:00
Alyssa Rosenzweig
e5097a7c9d
glsl_to_nir: upcast array indices
...
array indices need to match the pointer size, otherwise we fail NIR assertions.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6075
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34016 >
2025-04-07 19:44:22 +00:00
Marek Olšák
3b0a616024
glsl: move code after link_varyings into link_varyings
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Marek Olšák
b3f01773ac
glsl: always return true at the end of link_varyings
...
Require that the function returns false before we get to the end if there
is any linker error.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Marek Olšák
4fe3ea1427
glsl: remove a deprecated comment about nir_compact_varyings
...
We don't use nir_compact_varyings anymore.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Marek Olšák
74dd799cc2
glsl: stop calling nir_opt_combine_stores (redundant with nir_opt_vectorize_io)
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Marek Olšák
9ce89f69b0
glsl: return failure from remove_unused_io_vars
...
to stop linking if we fail here.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Marek Olšák
063df44e0d
glsl: return failure from varying_matches_assign_locations
...
to stop linking if we fail here.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Marek Olšák
b2d215ac84
glsl: return failure from gl_nir_validate_first_and_last_interface_explicit_locations
...
to stop linking if we fail here.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34307 >
2025-04-06 16:15:52 -04:00
Tapani Pälli
b93ea155f9
compiler/glsl: check that bias is not used outside fragment stage
...
This fixes some upcoming CTS tests that attempt bias usage when
it is not valid per spec.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34285 >
2025-04-01 16:51:31 +00:00
Matt Turner
8d6deb4073
glsl: Add missing break
...
Reported by clang's `-Wimplicit-fallthrough`.
Fixes: 328c29d600 ("mesa,glsl,gallium: add GL_OVR_multiview")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34014 >
2025-03-13 20:11:10 +00:00
Matt Turner
4953d2a014
glsl: Use FALLTHROUGH
...
Reported by clang's `-Wimplicit-fallthrough`.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34014 >
2025-03-13 20:11:09 +00:00
Alejandro Piñeiro
142311258d
nir: aliasing checks should be also done with index != 0
...
Right now the aliasing/overlapping checks are only done with index
0. I guess that was done because variables don't get a different
internal location even if you have a different index.
But doing that, the checks would not detect a case like this:
layout(location = 0, index = 1) out vec4 color;
layout(location = 0, index = 1) out vec4 factor;
That was used on the following piglit parser test:
spec/arb_explicit_attrib_location/1.10/compiler/layout-13.frag
And as the spec included on that test, is a link error case:
" * if more than one varying out variable is bound to the same
number and index; or"
This commit executes the aliasing checks for index 1 too, and moves
the skip down, to only skip if the current variable and all previous
location-assigned variables has different index and location.
The bad news is that now such assigned variables need to be tracked on
OpenGL-ES. Before that commit that was avoided.
With this commit the mentioned parser test properly fails to link in
any driver.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33093 >
2025-02-27 15:10:52 +00:00
Alyssa Rosenzweig
9a58a8257e
treewide: Switch to nir_progress
...
Via the Coccinelle patch at the end of the commit message, followed by
sed -ie 's/progress = progress | /progress |=/g' $(git grep -l 'progress = prog')
ninja -C ~/mesa/build clang-format
cd ~/mesa/src/compiler/nir && clang-format -i *.c
agxfmt
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
-return prog;
+return nir_progress(prog, impl, metadata);
@@
expression prog_expr, impl, metadata;
@@
-if (prog_expr) {
-nir_metadata_preserve(impl, metadata);
-return true;
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-return false;
-}
+bool progress = prog_expr;
+return nir_progress(progress, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-nir_metadata_preserve(impl, prog ? (metadata) : nir_metadata_all);
-return prog;
+return nir_progress(prog, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-nir_metadata_preserve(impl, prog ? (metadata) : nir_metadata_all);
+nir_progress(prog, impl, metadata);
@@
expression impl, metadata;
@@
-nir_metadata_preserve(impl, metadata);
-return true;
+return nir_progress(true, impl, metadata);
@@
expression impl;
@@
-nir_metadata_preserve(impl, nir_metadata_all);
-return false;
+return nir_no_progress(impl);
@@
identifier other_prog, prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
-other_prog |= prog;
+other_prog = other_prog | nir_progress(prog, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+nir_progress(prog, impl, metadata);
@@
identifier other_prog, prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-other_prog = true;
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+other_prog = other_prog | nir_progress(prog, impl, metadata);
@@
expression prog_expr, impl, metadata;
identifier prog;
@@
-if (prog_expr) {
-nir_metadata_preserve(impl, metadata);
-prog = true;
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+bool impl_progress = prog_expr;
+prog = prog | nir_progress(impl_progress, impl, metadata);
@@
identifier other_prog, prog;
expression impl, metadata;
@@
-if (prog) {
-other_prog = true;
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+other_prog = other_prog | nir_progress(prog, impl, metadata);
@@
expression prog_expr, impl, metadata;
identifier prog;
@@
-if (prog_expr) {
-prog = true;
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+bool impl_progress = prog_expr;
+prog = prog | nir_progress(impl_progress, impl, metadata);
@@
expression prog_expr, impl, metadata;
@@
-if (prog_expr) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+bool impl_progress = prog_expr;
+nir_progress(impl_progress, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-nir_metadata_preserve(impl, metadata);
-prog = true;
+prog = nir_progress(true, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-}
-return prog;
+return nir_progress(prog, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-}
+nir_progress(prog, impl, metadata);
@@
expression impl;
@@
-nir_metadata_preserve(impl, nir_metadata_all);
+nir_no_progress(impl);
@@
expression impl, metadata;
@@
-nir_metadata_preserve(impl, metadata);
+nir_progress(true, impl, metadata);
squashme! sed -ie 's/progress = progress | /progress |=/g' $(git grep -l 'progress = prog')
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33722 >
2025-02-26 15:19:53 +00:00
Timur Kristóf
d74d316f60
glsl: Don't use deprecated NIR_PASS_V macro anymore.
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33609 >
2025-02-22 08:54:39 +01:00
Georg Lehmann
f26069fdd9
nir: replace nir_opt_conditional_discard with nir_opt_peephole_select
...
Foz-DB Navi21:
Totals from 118 (0.15% of 79377) affected shaders:
Instrs: 208001 -> 207355 (-0.31%); split: -0.33%, +0.01%
CodeSize: 1080428 -> 1078432 (-0.18%); split: -0.20%, +0.02%
SpillSGPRs: 202 -> 211 (+4.46%)
Latency: 1923508 -> 1919093 (-0.23%); split: -0.62%, +0.39%
InvThroughput: 407475 -> 407081 (-0.10%); split: -0.12%, +0.02%
SClause: 7050 -> 7033 (-0.24%); split: -0.31%, +0.07%
Copies: 12156 -> 11821 (-2.76%); split: -3.04%, +0.28%
PreSGPRs: 8198 -> 8331 (+1.62%); split: -0.02%, +1.65%
PreVGPRs: 7628 -> 7528 (-1.31%)
VALU: 155747 -> 155657 (-0.06%); split: -0.06%, +0.00%
SALU: 18295 -> 17782 (-2.80%); split: -2.98%, +0.18%
SMEM: 10521 -> 10519 (-0.02%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33590 >
2025-02-20 21:59:17 +00:00
Georg Lehmann
ca8147edbe
nir/peephole_select: add options struct
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33590 >
2025-02-20 21:59:16 +00:00
Matt Turner
a9139e0f97
glsl: Fix typos
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33556 >
2025-02-15 17:43:44 +00:00
Timur Kristóf
480c7100d8
glsl: Don't include full nir.h where not necessary.
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33439 >
2025-02-12 22:33:07 +01:00
James Hogan
b774b615d2
glsl: Expose gl_ViewID_OVR back to GLSL 1.30
...
OVR_multiview requires OpenGL 3.0, so expose gl_ViewID_OVR builtin back
to GLSL 1.30 on OpenGL.
v2: Minor whitespace fix
Fixes: 328c29d600 ("mesa,glsl,gallium: add GL_OVR_multiview")
Signed-off-by: James Hogan <james@albanarts.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33346 >
2025-02-04 15:12:53 +00:00
Tapani Pälli
cb71030387
mesa: enable GL_EXT_conservative_depth extension
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33065 >
2025-01-30 10:50:37 +00:00
Timothy Arceri
e639cd768d
glsl: fix return value for subgroupBallot()
...
The original code attempted to create a second instance of the intrinsic
with only a different return value which isn't possible since the params
(in this case 0 params) are the same. To fix this were need to create
two differently named intrinsics.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Fixes: a496d84ac8 ("glsl: add KHR_shader_subgroup_ballot builtin functions")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12510
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33231 >
2025-01-30 06:06:32 +00:00
Timothy Arceri
09f73024a5
glsl: fix num_views linker error
...
The declaration must be the same across shaders but not all shaders
must make the declaration.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33149 >
2025-01-24 01:47:55 +00:00
Timothy Arceri
914697c4ac
glsl: fix num_views validation message
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33149 >
2025-01-24 01:47:55 +00:00
Marek Olšák
f29530533c
glsl: simplify nir_lower_io_to_temporaries logic
...
no change in behavior
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33146 >
2025-01-22 02:15:04 +00:00
Marek Olšák
b7c4a1479e
glsl: remove dead code due to IO being always lowered
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33146 >
2025-01-22 02:15:04 +00:00
Mike Blumenkrantz
48d0a0322f
glsl: plumb num_views down to shader_info::view_mask
...
this is needed for drivers to more effectively compile multiview-enabled
shaders
Reviewed-by: Timothy Arceri <tarceri@itqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33016 >
2025-01-20 22:43:23 +00:00
Timothy Arceri
7d41cfa1a9
glsl: enable layout qualifier if OVR_multiview enabled
...
OVR_multiview requires 1.30 but makes use of layout qualifier
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33074 >
2025-01-19 01:10:54 +00:00
Qiang Yu
e5041ef036
docs,src: replace doc and comments for PIPE_CAP with pipe_caps
...
Use command:
find . -type d \( -path "./.git" -o -path "./docs/relnotes" \) -prune -o -type f -exec sed -i 's/PIPE_CAP_\([A-Za-z0-9_]*\)/pipe_caps.\L\1/g' {} +
find . -type d \( -path "./.git" -o -path "./docs/relnotes" \) -prune -o -type f -exec sed -i 's/PIPE_CAPF_\([A-Za-z0-9_]*\)/pipe_caps.\L\1/g' {} +
With manual adjustment for docs/gallium/screen.rst to merge
pipe_cap and pipe_capf section.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32955 >
2025-01-17 04:39:47 +00:00
Timothy Arceri
6bca0cc3d9
glsl: drop opt_dead_code_local
...
This does nothing useful anymore as we now convert to nir at compile
time which will handle all this for us.
shader-db radeonsi:
TOTALS FROM AFFECTED SHADERS (63/168079)
SGPRS: 3248.00 -> 3208.00 (-1.23 %)
VGPRS: 2224.00 -> 2228.00 (0.18 %)
Spilled SGPRs: 0.00 -> 0.00 (0.00 %)
Spilled VGPRs: 0.00 -> 0.00 (0.00 %)
Private memory VGPRs: 0.00 -> 0.00 (0.00 %)
Scratch size: 0.00 -> 0.00 (0.00 %) dwords per thread
Code Size: 138484.00 -> 138068.00 (-0.30 %) bytes
Max Waves: 877.00 -> 877.00 (0.00 %)
Outputs: 0.00 -> 0.00 (0.00 %)
Patch Outputs: 0.00 -> 0.00 (0.00 %)
shader-db Iris (BDW):
total instructions in shared programs: 17805897 -> 17805917 (<.01%)
instructions in affected programs: 1240 -> 1260 (1.61%)
helped: 0
HURT: 8
HURT stats (abs) min: 1 max: 4 x̄: 2.50 x̃: 2
HURT stats (rel) min: 0.39% max: 7.14% x̄: 4.26% x̃: 4.06%
95% mean confidence interval for instructions value: 1.61 3.39
95% mean confidence interval for instructions %-change: 2.01% 6.51%
Instructions are HURT.
total cycles in shared programs: 856868505 -> 856876266 (<.01%)
cycles in affected programs: 2879959 -> 2887720 (0.27%)
helped: 79
HURT: 100
helped stats (abs) min: 1 max: 742 x̄: 61.96 x̃: 12
helped stats (rel) min: <.01% max: 41.84% x̄: 1.17% x̃: 0.20%
HURT stats (abs) min: 1 max: 1231 x̄: 126.56 x̃: 14
HURT stats (rel) min: <.01% max: 33.98% x̄: 3.32% x̃: 0.30%
95% mean confidence interval for cycles value: 7.37 79.35
95% mean confidence interval for cycles %-change: 0.29% 2.38%
Cycles are HURT.
LOST: 1
GAINED: 4
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33008 >
2025-01-15 02:01:09 +00:00
Mike Blumenkrantz
010732b8ef
glsl: enable OVR_multiview if OVR_multiview2 is enabled
...
according to spec
Fixes: 328c29d600 ("mesa,glsl,gallium: add GL_OVR_multiview")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32946 >
2025-01-10 19:10:48 +00:00
Mike Blumenkrantz
3c5eae639d
glsl: make gl_ViewID_OVR visible to all shader stages
...
according to spec
Fixes: 328c29d600 ("mesa,glsl,gallium: add GL_OVR_multiview")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32946 >
2025-01-10 19:10:48 +00:00
Marek Olšák
d09ba36f98
glsl: fix corruption due to blake3 hash not being set for nir_opt_undef
...
NIR is generated sooner, so we need to set it sooner.
This fixes Viewperf13/CATIA_car_04.
Fixes: cbfc225e2b - glsl: switch to a full nir based linker
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32876 >
2025-01-06 19:50:51 +00:00
Marek Olšák
451d252ca2
glsl: remove unused code
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32779 >
2025-01-06 19:09:18 +00:00
Marek Olšák
dae57e184a
glsl,st/mesa: always lower IO for GLSL, unlower IO for drivers
...
This enables nir_opt_varyings for all gallium drivers.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31942 >
2024-12-24 05:54:07 -05:00
Benjamin Lee
becb014d27
nir: treat per-view outputs as arrayed IO
...
This is needed for implementing multiview in panvk, where the address
calculation for multiview outputs is not well-represented by lowering to
nir_intrinsic_store_output with a single offset.
The case where a variable is both per-view and per-{vertex,primitive} is
now unsupported. This would come up with drivers implementing
NV_mesh_shader or using nir_lower_multiview on geometry, tessellation,
or mesh shaders. No drivers currently do either of these. There was some
code that attempted to handle the nested per-view case by unwrapping
per-view/arrayed types twice, but it's unclear to what extent this
actually worked.
ANV and Turnip both rely on per-view outputs being assigned a unique
driver location for each view, so I've added on option to configure that
behavior rather than removing it.
Signed-off-by: Benjamin Lee <benjamin.lee@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31704 >
2024-12-09 20:31:49 +00:00
Timothy Arceri
fcebbfc399
glsl: drop unused array refcount code and tests
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32450 >
2024-12-04 11:50:57 +00:00
Timothy Arceri
fd431a5b71
glsl: drop unused ir_equals.cpp
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32448 >
2024-12-03 02:46:39 +00:00
Timothy Arceri
05d2fe2372
glsl: remove glsl/program.h
...
It is now unused.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32402 >
2024-11-29 14:31:30 +11:00
Timothy Arceri
8142797721
glsl: move _mesa_glsl_compile_shader() declaration
...
The function is in glsl_parser_extras.cpp so move the declaration to
glsl_parser_extras.h
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32402 >
2024-11-29 14:30:03 +11:00
Timothy Arceri
1f954a207b
glsl: remove now unused ir reader
...
This was used to parse glsl ir in string format and create real ir with
it. It was previously used for some really old test infrastructure which
has now been removed so lets burn this with fire also.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32364 >
2024-11-27 22:05:06 +00:00
Timothy Arceri
722f939614
glsl: drop last remaining lower jump test
...
This test only tests that a redundant continue is removed. This test is
not very useful and there are hundreds of lines of supporting test
infrastructure that can be removed if we drop it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32364 >
2024-11-27 22:05:06 +00:00
Timothy Arceri
cf188a0efb
glsl: remove return lowering from glsl ir
...
We don't need it as nir does it for us anyway.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32364 >
2024-11-27 22:05:06 +00:00
Timothy Arceri
6c86b56c06
glsl: disable function return lowering in glsl ir
...
We just let the nir lowering pass do it instead.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32364 >
2024-11-27 22:05:06 +00:00
Timothy Arceri
340f7edfba
glsl: use symbol table directly for builtin functions
...
Builtin functions do no make use of gl_shader at all other than to store
a symbol table. So lets just create and use the symbol table directly
instead. This will allow us to drop the symbol table member from
gl_shader in the following patch.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32293 >
2024-11-25 23:53:37 +00:00
Timothy Arceri
4ce9421acb
glsl: drop _mesa_glsl_copy_symbols_from_table()
...
Unused since the previous commit
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32293 >
2024-11-25 23:53:37 +00:00
Timothy Arceri
3b40db0ef6
glsl: don't copy symbol table to shaders
...
This is no longer needed since we switched to a full nir base linker. The
symbol table witchcraft is now only used in the ast code.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32293 >
2024-11-25 23:53:37 +00:00
Timothy Arceri
7469f99ea1
glsl: remove more now unused params from glsl_to_nir()
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32239 >
2024-11-21 03:21:08 +00:00
Timothy Arceri
44de5f1c46
Revert "glsl: Move ForceGLSLAbsSqrt handling to glsl-to-nir."
...
This reverts commit 46bf687882 .
We wont be removing this lowering file and having this workaround in
glsl_to_nir() creates a dependency on the const values that we could
otherwise avoid, so lets just move this back. Dropping the consts
will be useful in a follow up series that aims to drop all the glsl
ir function inlining code by converting builtin functions to nir.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32239 >
2024-11-21 03:21:08 +00:00
Timothy Arceri
10c292acf6
glsl: remove unused member
...
Unused since 063d62f142
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32239 >
2024-11-21 03:21:08 +00:00