Georg Lehmann
43f77214a0
nir/move_discards_to_top: single final iteration
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
4c7d6e9437
nir/algebraic: optimize more bcsel(, bcsel())
...
This inot should be pretty optimizable.
fossil-db (navi21);
Totals from 2361 (2.97% of 79395) affected shaders:
MaxWaves: 50808 -> 50890 (+0.16%)
Instrs: 4168195 -> 4167332 (-0.02%); split: -0.05%, +0.03%
CodeSize: 22727496 -> 22708088 (-0.09%); split: -0.12%, +0.03%
VGPRs: 135160 -> 134824 (-0.25%)
SpillSGPRs: 723 -> 725 (+0.28%)
Latency: 37498671 -> 37479794 (-0.05%); split: -0.07%, +0.02%
InvThroughput: 10468406 -> 10453028 (-0.15%); split: -0.16%, +0.01%
VClause: 98258 -> 98283 (+0.03%); split: -0.04%, +0.07%
SClause: 111281 -> 111323 (+0.04%); split: -0.06%, +0.09%
Copies: 299281 -> 300155 (+0.29%); split: -0.17%, +0.46%
Branches: 115951 -> 116111 (+0.14%); split: -0.00%, +0.14%
PreSGPRs: 109404 -> 109462 (+0.05%); split: -0.14%, +0.19%
PreVGPRs: 114558 -> 114421 (-0.12%)
VALU: 2876823 -> 2869990 (-0.24%); split: -0.24%, +0.00%
SALU: 500286 -> 506124 (+1.17%); split: -0.03%, +1.20%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
7ef1585fd6
nir/algebraic: add is_used_once to bcsel(, bcsel()) opts
...
fossil-db (navi21):
Totals from 888 (1.12% of 79395) affected shaders:
MaxWaves: 18034 -> 18046 (+0.07%)
Instrs: 3422053 -> 3418446 (-0.11%); split: -0.11%, +0.01%
CodeSize: 18520912 -> 18500604 (-0.11%); split: -0.12%, +0.01%
VGPRs: 53200 -> 53176 (-0.05%)
Latency: 27739575 -> 27735200 (-0.02%); split: -0.06%, +0.04%
InvThroughput: 6784257 -> 6782188 (-0.03%); split: -0.06%, +0.03%
VClause: 83188 -> 83199 (+0.01%); split: -0.00%, +0.02%
SClause: 91350 -> 91362 (+0.01%); split: -0.00%, +0.02%
Copies: 263277 -> 262638 (-0.24%); split: -0.29%, +0.05%
PreSGPRs: 52478 -> 51940 (-1.03%); split: -1.03%, +0.01%
PreVGPRs: 47418 -> 47397 (-0.04%); split: -0.06%, +0.02%
VALU: 2235368 -> 2234513 (-0.04%); split: -0.05%, +0.01%
SALU: 547587 -> 544839 (-0.50%); split: -0.51%, +0.00%
VMEM: 142861 -> 142871 (+0.01%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
b8c8482dbb
nir/algebraic: add ddxy to is_only_used_as_float
...
The sources for these intrinsics are floating point.
fossil-db (navi21):
Totals from 67 (0.08% of 79395) affected shaders:
MaxWaves: 1128 -> 1116 (-1.06%)
Instrs: 113552 -> 113319 (-0.21%); split: -0.21%, +0.01%
CodeSize: 595248 -> 593360 (-0.32%)
VGPRs: 4344 -> 4392 (+1.10%)
Latency: 578158 -> 577526 (-0.11%); split: -0.18%, +0.07%
InvThroughput: 170150 -> 169908 (-0.14%); split: -0.23%, +0.09%
SClause: 3787 -> 3780 (-0.18%)
Copies: 4305 -> 4294 (-0.26%); split: -0.51%, +0.26%
PreVGPRs: 3883 -> 3925 (+1.08%)
VALU: 90007 -> 89774 (-0.26%); split: -0.27%, +0.01%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
69f1a035ff
nir/lcssa: use nir_intrinsic_can_reorder
...
No fossil-db changes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
ca27951743
nir/opt_move_discards_to_top: allow multiple discards to be moved
...
fossil-db (navi21):
Totals from 755 (0.95% of 79395) affected shaders:
MaxWaves: 19732 -> 19808 (+0.39%); split: +0.61%, -0.22%
Instrs: 518468 -> 518982 (+0.10%); split: -0.09%, +0.19%
CodeSize: 2837120 -> 2841432 (+0.15%); split: -0.10%, +0.26%
VGPRs: 33240 -> 32592 (-1.95%); split: -2.48%, +0.53%
Latency: 5583293 -> 5651636 (+1.22%); split: -0.41%, +1.64%
InvThroughput: 1417459 -> 1416762 (-0.05%); split: -0.22%, +0.17%
VClause: 8477 -> 8461 (-0.19%); split: -1.06%, +0.87%
SClause: 16058 -> 16292 (+1.46%); split: -1.20%, +2.66%
Copies: 27310 -> 27288 (-0.08%); split: -1.27%, +1.19%
Branches: 11165 -> 11223 (+0.52%); split: -0.09%, +0.61%
PreSGPRs: 28883 -> 29096 (+0.74%); split: -0.99%, +1.73%
PreVGPRs: 25318 -> 25044 (-1.08%); split: -1.38%, +0.30%
VALU: 388566 -> 388586 (+0.01%); split: -0.05%, +0.06%
SALU: 46783 -> 47037 (+0.54%); split: -0.38%, +0.93%
VMEM: 12181 -> 12186 (+0.04%)
SMEM: 27818 -> 27772 (-0.17%); split: -0.17%, +0.00%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
37d77a12e9
nir/opt_move_discards_to_top: add more intrinsics to add_src_to_worklist
...
fossil-db (navi21):
Totals from 115 (0.14% of 79395) affected shaders:
MaxWaves: 2882 -> 2886 (+0.14%); split: +0.62%, -0.49%
Instrs: 71640 -> 71686 (+0.06%); split: -0.21%, +0.28%
CodeSize: 395820 -> 395084 (-0.19%); split: -0.39%, +0.20%
VGPRs: 5224 -> 5256 (+0.61%); split: -0.61%, +1.23%
Latency: 1114025 -> 1145891 (+2.86%); split: -0.12%, +2.98%
InvThroughput: 239149 -> 239028 (-0.05%); split: -0.07%, +0.02%
VClause: 1289 -> 1291 (+0.16%); split: -0.62%, +0.78%
SClause: 2267 -> 2203 (-2.82%); split: -5.38%, +2.56%
Copies: 4359 -> 4372 (+0.30%); split: -2.18%, +2.48%
Branches: 1215 -> 1225 (+0.82%)
PreSGPRs: 4225 -> 4265 (+0.95%); split: -1.35%, +2.30%
PreVGPRs: 4166 -> 4189 (+0.55%); split: -0.96%, +1.51%
VALU: 53590 -> 53614 (+0.04%); split: -0.10%, +0.14%
SALU: 6527 -> 6539 (+0.18%); split: -0.84%, +1.03%
SMEM: 4120 -> 4117 (-0.07%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
08e355a287
nir/opt_move_discards_to_top: use nir_intrinsic_can_reorder
...
fossil-db (navi21):
Totals from 2306 (2.90% of 79395) affected shaders:
MaxWaves: 65920 -> 65952 (+0.05%); split: +0.22%, -0.17%
Instrs: 1056765 -> 1058517 (+0.17%); split: -0.09%, +0.26%
CodeSize: 5802396 -> 5808076 (+0.10%); split: -0.13%, +0.23%
VGPRs: 79976 -> 79248 (-0.91%); split: -1.46%, +0.55%
Latency: 17215154 -> 17527774 (+1.82%); split: -0.11%, +1.92%
InvThroughput: 4911203 -> 4918838 (+0.16%); split: -0.06%, +0.22%
VClause: 16214 -> 16268 (+0.33%); split: -0.44%, +0.78%
SClause: 33208 -> 34167 (+2.89%); split: -1.02%, +3.91%
Copies: 58352 -> 58343 (-0.02%); split: -1.20%, +1.18%
Branches: 21857 -> 21863 (+0.03%); split: -0.02%, +0.05%
PreSGPRs: 73666 -> 74298 (+0.86%); split: -0.82%, +1.67%
PreVGPRs: 55234 -> 55720 (+0.88%); split: -0.41%, +1.29%
VALU: 756386 -> 756329 (-0.01%); split: -0.06%, +0.05%
SALU: 123838 -> 124320 (+0.39%); split: -0.35%, +0.74%
VMEM: 25002 -> 25009 (+0.03%)
SMEM: 60765 -> 60580 (-0.30%); split: -0.41%, +0.11%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
fff3eb7848
nir/opt_move_discards_to_top: update variable name
...
Discard doesn't exist anymore. There is only terminate.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
eea5be2e28
nir/opt_move_discards_to_top: remove recursion
...
This kind of recursion is unreliable with large shaders or small stack
limits.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:45 +00:00
Rhys Perry
4c6fdb113f
nir: fix return value of nir_instr_move for some cases
...
This fixes a potential issue where nir_opt_move_discards_to_top would
always return progress.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Fixes: f97fb1fa55 ("nir: Add a nir_instr_move helper")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:44 +00:00
Rhys Perry
8bbc8284d9
nir/opt_move_discards_to_top: use nir_tex_instr_has_implicit_derivative
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Fixes: 48158636bf ("nir: add is_gather_implicit_lod")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32145 >
2024-11-21 14:50:44 +00:00
Georg Lehmann
ec487d01e2
nir/opt_undef: handle unpack/pack like mov/vec
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32249 >
2024-11-21 14:09:52 +00:00
Georg Lehmann
af974b5fe9
nir/opt_undef: keep undefs used by partial undef vectors
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32249 >
2024-11-21 14:09:52 +00:00
Georg Lehmann
a9d3caf3bf
nir/opt_undef: use some nir helpers
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32249 >
2024-11-21 14:09:52 +00:00
Georg Lehmann
6630c6d912
nir/opt_undef: replace undef in a separate pass
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32249 >
2024-11-21 14:09:52 +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
Timothy Arceri
8ac81c5bb4
glsl: tidy up glsl_to_nir() params
...
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
Georg Lehmann
0776b56ad6
nir: cse terminate/demote
...
Foz-DB Navi21:
Totals from 32 (0.04% of 79206) affected shaders:
MaxWaves: 984 -> 976 (-0.81%)
Instrs: 7719 -> 7496 (-2.89%)
CodeSize: 43220 -> 42264 (-2.21%)
VGPRs: 856 -> 872 (+1.87%)
Latency: 62689 -> 62453 (-0.38%); split: -0.72%, +0.34%
InvThroughput: 8988 -> 8968 (-0.22%); split: -0.23%, +0.01%
VClause: 248 -> 249 (+0.40%)
SClause: 296 -> 293 (-1.01%)
Copies: 580 -> 534 (-7.93%); split: -9.31%, +1.38%
Branches: 181 -> 139 (-23.20%)
PreSGPRs: 841 -> 834 (-0.83%)
SALU: 1091 -> 933 (-14.48%)
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32235 >
2024-11-20 23:54:04 +00:00
Georg Lehmann
a67ca0eb59
nir/instr_set: support instrs with no def
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32235 >
2024-11-20 23:54:04 +00:00
Georg Lehmann
7097b705b5
nir/instr_set: replace nir_instr_get_def_def with nir_instr_def
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32235 >
2024-11-20 23:54:04 +00:00
Georg Lehmann
4299809321
nir: return def for debug info in nir_instr_def
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32235 >
2024-11-20 23:54:04 +00:00
Alyssa Rosenzweig
4477eed302
compiler: make glsl_sampler_dim available to CL
...
useful with the NIR bindings for image load/store.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
39afffe956
nir: split off some definitions for OpenCL
...
we want some enum values on device for NIR->CL bindings. specifically,
src_type/dest_type indices.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
e3b14481e3
vtn: preserve name, is_return in bindings
...
we want to plumb as much signature through as possible.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
733ec7c675
vtn: use named parameters in bindgen
...
If the input spir-v isn't stripped, preserving the names makes the generated
header more readable. This makes semantic autocomplete (IDEs) work properly with
vtn_bindgen prototypes.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
f25b7103fe
vtn: use rzalloc in bindgen
...
we don't want garbage.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
5d7a230324
vtn: gather function parameter names
...
Unstripped SPIR-V libraries generated from OpenCL have lots of function
parameter names. Gather them.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
d248618d81
nir/print: print parameter names in calls
...
if we have them. example:
call libagx_geometry_input_address %10, p %3, vtx %9, location %0 (0x0)
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
6b35d7eb13
nir/print: annotate entrypoints
...
we can have multiple in a collection of OpenCL kernels.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
eebfbf5ecd
nir/print: print function signature
...
parameter dimensions and names if we have them. example:
decl_function libagx_geometry_input_address (64 return, 64 p, 32 vtx, 32 location)
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
3da8444be5
nir: add names to function parameters
...
SPIR-V has this information. We should try to preserve it.
Signed-off-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/32208 >
2024-11-20 16:53:51 +00:00
Alyssa Rosenzweig
61862b209e
nir/opt_algebraic: optimize convert_uint_sat(ulong)
...
I wrote this in my query copy shader, it didn't get the codegen I expected, so I
investigated.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32208 >
2024-11-20 16:53:50 +00:00
Alyssa Rosenzweig
07ba9335ae
nir/conversion_builder: avoid redundant uint->uint clamp
...
algebraic will clean up but there's no reason to generate it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32208 >
2024-11-20 16:53:50 +00:00
Alyssa Rosenzweig
76927a3b43
nir/lower_convert_alu_types: use intrinsics_pass
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32208 >
2024-11-20 16:53:50 +00:00
Timothy Arceri
e34357015c
glsl: fix compiler global temp collisions
...
glsl ir creates these temps to copy global initialiser values for
example. To avoid collisions during linking due to 2 shaders in the same
stage having temps with the same name we make sure to define these as
function variables not shader globals. This will put the temps into the
global instructions wrapper created in 7c5b21c032 .
Fixes: cbfc225e2b ("glsl: switch to a full nir based linker")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12136
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32202 >
2024-11-20 03:20:47 +00:00
Marek Olšák
25d4943481
nir: make use_interpolated_input_intrinsics a nir_lower_io parameter
...
This will need to be set to true when the GLSL linker lowers IO, which
can later be unlowered by st/mesa, and then drivers can lower it again
without load_interpolated_input. Therefore, it can't be a global
immutable option.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32229 >
2024-11-20 02:45:37 +00:00
Marek Olšák
3affe3cb17
vc4/lower_blend: don't read non-existent channels
...
nir_lower_texcoord_replace_late had swapped parameters in nir_undef.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
4da5b11ca9
nir: add nir_io_separate_clip_cull_distance_arrays to replace PIPE_CAP
...
to make the flag available in NIR passes
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
23eb4f3454
nir: rename nir_io_glsl_opt_varyings to nir_io_dont_optimize and deprecate it
...
The meaning is negated.
This NIR option is deprecated and shouldn't be used. It means any IO
optimizations can be disabled and it's a currently a workaround for zink,
which is the only driver that asks for it by default. The original option
is replaced by an environment variable for the GLSL linker.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
dacae272bf
nir: add nir_io_semantics::fb_fetch_output_coherent
...
Lowering IO should preserve this. Freedreno needs it.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
5d5a7bd221
nir/lower_two_sided_color: fix for lowered IO
...
1-bit input loads are illegal in NIR.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
65d32b96cf
nir/lower_fragcoord_wtrans: handle trimmed fragcoord loads
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
dcca0e590c
nir/lower_clip: rewrite find_output to handle vec2/3 and make it readable
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
45b20c8249
nir/lower_clip: fixes for lowered IO without compact arrays
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
878d23e171
nir/lower_pntc_ytransform: handle lowered IO
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Marek Olšák
18f3c92b87
nir/print: print fb_fetch_output for variables
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32173 >
2024-11-19 23:48:38 +00:00
Rhys Perry
6c07c0b862
glsl/list: remove underscores in foreach_list_typed macros
...
I'm not sure why they're here, but I find them to be annoying to read.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32225 >
2024-11-19 18:59:05 +00:00