Rhys Perry
e99ba0b6d3
nir/range_analysis: use perform_analysis() in nir_analyze_range()
...
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/21381 >
2023-03-22 09:24:18 +00:00
Rhys Perry
2b03db39b3
nir/range_analysis: use perform_analysis() in nir_unsigned_upper_bound()
...
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/21381 >
2023-03-22 09:24:18 +00:00
Rhys Perry
29a38b09cf
nir/range_analysis: add helpers for limiting stack usage
...
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/21381 >
2023-03-22 09:24:18 +00:00
Rhys Perry
2145cf3dd1
nir/range_analysis: add missing masking of shift amounts
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Fixes: 72ac3f6026 ("nir: add nir_unsigned_upper_bound and nir_addition_might_overflow")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21381 >
2023-03-22 09:24:18 +00:00
Alyssa Rosenzweig
2933af7576
nir/builder: Add nir_umod_imm helper
...
Like nir_udiv_imm, we can do a similar power-of-two trick. It's also really
convenient.
v2: Assert reasonable bounds on the modulus (Faith).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl > [v1]
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com > [v1]
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22010 >
2023-03-22 06:18:18 +00:00
Georg Lehmann
cec04adcee
nir: optimize i2f(f2i(fsign))
...
Foz-DB Navi10:
Totals from 3013 (2.23% of 134906) affected shaders:
VGPRs: 138068 -> 136964 (-0.80%); split: -0.80%, +0.00%
CodeSize: 10476416 -> 10391800 (-0.81%)
MaxWaves: 79118 -> 80088 (+1.23%)
Instrs: 1963227 -> 1945003 (-0.93%)
Latency: 24734883 -> 24649279 (-0.35%); split: -0.39%, +0.05%
InvThroughput: 6366777 -> 6334735 (-0.50%); split: -0.50%, +0.00%
VClause: 36845 -> 36882 (+0.10%); split: -0.26%, +0.36%
SClause: 59249 -> 59273 (+0.04%); split: -0.25%, +0.29%
Copies: 108570 -> 108501 (-0.06%); split: -0.19%, +0.13%
PreSGPRs: 105371 -> 105862 (+0.47%)
PreVGPRs: 117675 -> 116625 (-0.89%); split: -0.89%, +0.00%
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22003 >
2023-03-22 05:34:55 +00:00
Samuel Pitoiset
bb7e0c4280
spirv,nir: add support for SpvBuiltInFullyCoveredEXT
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
cf2bc83c60
spirv: add SpvCapabilityFragmentFullyCoveredEXT
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Emma Anholt
5873dcb32f
nir/lower_mediump: Fix assertion about copy_deref lowering matching.
...
Copy and paste typo. We shouldn't have copy_derefs during this pass,
anyway, but caught a failure with my upcoming unit testing.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
1fff562929
glsl/lower_precision: Add actual spec quotes for "check_parameters"
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
4a51944639
glsl: Fix the precision of atomic counter builtin function args.
...
More special-casing dropped from GLSL lower_precision.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
b251f94e15
glsl/lower_precision: Drop most special-casing of builtin arg precision.
...
bitCount is still special in that our lowering would try to demote its arg
based on the precision of its output, and it shouldn't do that. But the
other special cases now have appropriate qualifiers on them at the IR
level.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
18e096769c
glsl: Set the precision of function return value temporaries.
...
The signature should dictate the precision of the temp we store into.
This ends up ignored by lower_precision for now, which always rewrites it
so as to handle custom lowering of builtin precision..
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
b1d228e9d5
glsl: Handle highp promotion of builtin function args in the builtins.
...
It's what the spec says to do. This will may help us avoid special-casing
these functions if we ever lower precision after builtin inlining.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
be2731f445
glsl: Set the precisions of builtin function arguments and returns.
...
These have precision qualifiers defined in the spec, in which case we
should emit them them while generating builtin signatures and code. We've
been special-casing them in GLSL lower_precision, but now we can just rely
on the precision qualifier of the builtin if non-NONE.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
2e85c9a422
glsl/lower_precision: Add a cut-down testcase for #8124
...
This pattern is the core of the webgl conformance failure, I think. And,
I think actually lower_precision was doing the right thing, just the
conformance test going through ANGLE was screwing up.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
41be2caa6d
glsl/lower_precision: Add a unit test that I thought we might fail at.
...
If you lowered precision too late, it would be easy to break this.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
Emma Anholt
9a2d66f5a5
glsl: Simplify vector constructors from scalars.
...
No need to generate a temp in this case. Cleanup I noticed while looking
at lower_precision behavior (and I've included a testcase to sanity check
that things work out).
This causes a tiny amount of scheduling change on freedreno:
total instructions in shared programs: 11010012 -> 11010012 (0.00%)
instructions in affected programs: 147 -> 147 (0.00%)
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21666 >
2023-03-21 00:51:24 +00:00
volodymyr.o
47e7b49c61
mesa ctx->API --> _mesa_is_foo(ctx)
...
replaces direct API checks with _mesa_is_...() checks
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8340
Signed-off-by: Volodymyr Obohzyn volodymyr.obozhyn@globallogic.com
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21556 >
2023-03-20 06:39:57 +00:00
Oleksii Bozhenko
bf910c94e0
glsl: fix gl_CullDistance lowering from float[8] to vec4[2]
...
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7152
Fixes: ad355652c2 ("glsl: Extend lowering pass for gl_ClipDistance to support other arrays")
Signed-off-by: Oleksii Bozhenko oleksii.bozhenko@globallogic.com
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21810 >
2023-03-20 04:19:23 +00:00
Jesse Natalie
49885f87c3
nir: Propagate alignment when rematerializing cast derefs
...
Fixes: 878a8daca6 ("nir: Add alignment information to cast derefs")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21975 >
2023-03-17 08:16:03 +00:00
Sviatoslav Peleshko
1648e3b4b9
glsl: Fix codegen for constant ir_binop_{l,r}shift with mixed types
...
Fixes: 13106e10 ("glsl: Generate code for constant ir_binop_lshift and ir_binop_rshift expressions")
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17787 >
2023-03-17 05:00:22 +00:00
Timothy Arceri
174d6e6a54
glsl: allow 64-bit integer on RHS of shift
...
Fixes: 9ba9a7f854 ("glsl: Add 64-bit integer support to some operations.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6862
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21919 >
2023-03-16 02:26:30 +00:00
Daniel Schürmann
5ede3b1c6b
mesa: add gl_shader_stage_is_rt()
...
to indicate raytracing shader stages.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21780 >
2023-03-16 01:40:29 +00:00
Timur Kristóf
022e55557b
nir: Add load_typed_buffer_amd intrinsic.
...
This new intrinsic maps to the MTBUF instruction format on AMD GPUs
and represents a typed buffer load in NIR.
Also add an unsigned upper bound for the new intrinsic.
Code for that ported from aco_instruction_selection_setup.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
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/16805 >
2023-03-15 14:54:27 +00:00
Emma Anholt
e395e57f07
glsl: Delete constant-variables pass.
...
Now that we don't do GLSL IR constant propagation or constant folding, we
can leave constant variable detection and handling to NIR. This also
avoids some OOB array access in GLSL IR in a piglit test!
Freedreno stats again look like noise:
total instructions in shared programs: 2718412 -> 2718746 (0.01%)
instructions in affected programs: 80497 -> 80831 (0.41%)
total last-baryf in shared programs: 110015 -> 110510 (0.45%)
last-baryf in affected programs: 35263 -> 35758 (1.40%)
total full in shared programs: 189486 -> 189480 (<.01%)
full in affected programs: 52 -> 46 (-11.54%)
total constlen in shared programs: 494540 -> 494496 (<.01%)
constlen in affected programs: 452 -> 408 (-9.73%)
total sstall in shared programs: 198297 -> 197928 (-0.19%)
sstall in affected programs: 3691 -> 3322 (-10.00%)
total systall in shared programs: 432150 -> 431799 (-0.08%)
systall in affected programs: 6070 -> 5719 (-5.78%)
total waves in shared programs: 435098 -> 435110 (<.01%)
waves in affected programs: 92 -> 104 (13.04%)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21751 >
2023-03-15 03:29:19 +00:00
Emma Anholt
329ab85a89
glsl: Delete constant folding pass.
...
NIR is happy to take care of constant folding for us, and it's easier to
do in SSA.
This required adjusting of lower_precision unit tests to have un-folded
constants.
freedreno results look like noise. Some excerpts:
total instructions in shared programs: 2718343 -> 2718412 (<.01%)
instructions in affected programs: 6847 -> 6916 (1.01%)
total last-baryf in shared programs: 109992 -> 110015 (0.02%)
last-baryf in affected programs: 117 -> 140 (19.66%)
total sstall in shared programs: 198312 -> 198297 (<.01%)
sstall in affected programs: 148 -> 133 (-10.14%)
total systall in shared programs: 432163 -> 432150 (<.01%)
systall in affected programs: 1016 -> 1003 (-1.28%)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21751 >
2023-03-15 03:29:19 +00:00
Emma Anholt
7f39c9f24e
glsl: Delete constant propagation pass.
...
freedreno results look like noise. Excerpts:
total instructions in shared programs: 2718355 -> 2718343 (<.01%)
instructions in affected programs: 2001 -> 1989 (-0.60%)
total last-baryf in shared programs: 109960 -> 109992 (0.03%)
last-baryf in affected programs: 789 -> 821 (4.06%)
total sstall in shared programs: 198273 -> 198312 (0.02%)
sstall in affected programs: 140 -> 179 (27.86%)
total systall in shared programs: 432224 -> 432163 (-0.01%)
systall in affected programs: 241 -> 180 (-25.31%)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21751 >
2023-03-15 03:29:19 +00:00
Emma Anholt
470214cb82
glsl_to_nir: Use a variable's constant_value if it wasn't const-propped out.
...
glsl has been constant-propagating out references to ir->constant_value
(the value of a variable declared as const), but we can get rid of that
whole pass if we just have glsl-to-nir hand the constant propagating
problem off to NIR.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21751 >
2023-03-15 03:29:19 +00:00
Emma Anholt
dccbecbef5
glsl/nir: Include early glsl-to-nir output in NIR_DEBUG=print.
...
These passes were missing the macros to handle debug output and extra
validation. But also, for working on GLSL, it's nice to see the raw
output of glsl-to-nir before you move on.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21751 >
2023-03-15 03:29:19 +00:00
Isabella Basso
59fea8af3a
nir/algebraic: remove duplicate bool conversion lowerings
...
While [1] added some boolean conversion lowering patterns, those were
already dealt with on [2].
[1] - b86305bb ("nir/algebraic: collapse conversion opcodes (many patterns)")
[2] - d7e0d47b ("nir/algebraic: nir: Add a bunch of b2[if] optimizations")
Fixes: b86305bb ("nir/algebraic: collapse conversion opcodes (many patterns)")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Isabella Basso <isabellabdoamaral@usp.br >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20965 >
2023-03-11 17:21:38 +00:00
Isabella Basso
a553d3cd29
nir/algebraic: make patterns for float conversion lowerings imprecise
...
As noted on [1], lowering patterns of the form
floatS -> floatB -> floatS ==> floatS
cannot require precision since this may cause flush denorming.
[1] 3f779013 ("nir: Add an algebraic optimization for float->double->float")
Fixes: b86305bb ("nir/algebraic: collapse conversion opcodes (many patterns)")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Isabella Basso <isabellabdoamaral@usp.br >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20965 >
2023-03-11 17:21:37 +00:00
Isabella Basso
79c94ef52e
nir/algebraic: extend lowering patterns for conversions on smaller bit sizes
...
Conversions on smaller bit sizes should also be collapsed when composed.
This also adds more patterns on the
intS -> intB -> floatB ==> intS -> floatB
lowering so as to deal with any int size C > B instead of a fixed intB.
Closes : #7776
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Isabella Basso <isabellabdoamaral@usp.br >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20965 >
2023-03-11 17:21:37 +00:00
Isabella Basso
a27bcd63d0
nir/algebraic: extend mediump patterns
...
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Suggested-by: Italo Nicola <italonicola@collabora.com >
Signed-off-by: Isabella Basso <isabellabdoamaral@usp.br >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20965 >
2023-03-11 17:21:37 +00:00
Isabella Basso
b3685f3ba7
nir/algebraic: insert patterns inside optimizations list
...
Some patterns were outside the list of optimizations.
Fixes: b86305bb ("nir/algebraic: collapse conversion opcodes (many patterns)")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Isabella Basso <isabellabdoamaral@usp.br >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20965 >
2023-03-11 17:21:37 +00:00
Alyssa Rosenzweig
2ba48eea88
nir/lower_point_size: Use shader_instructions_pass
...
Sleepy code deletion mood.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21750 >
2023-03-11 16:42:36 +00:00
Ian Romanick
0cadc3830f
nir/lower_int64: Optionally lower ufind_msb using uadd_sat
...
v2: Fix inverted condition for applying the optimization. Noticed by
Ken.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
831f9d3f61
nir/algebraic: Optimize some ifind_msb to ufind_msb
...
On Intel platforms, the uclz lowering if ufind_msb is either one
instruction better (Gfx7 and newer) or two instructions better (all
older platforms) than the ifind_msb implementations.
On platforms that use lower_find_msb_to_reverse, there should be no
difference.
All Haswell and newer Intel platforms had similar results. (Ice Lake shown)
total instructions in shared programs: 19938662 -> 19938634 (<.01%)
instructions in affected programs: 850 -> 822 (-3.29%)
helped: 2 / HURT: 0
total cycles in shared programs: 858467067 -> 858465538 (<.01%)
cycles in affected programs: 10080 -> 8551 (-15.17%)
helped: 2 / HURT: 0
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
db6d1edc1b
nir: Restrict ufind_msb and ufind_msb_rev to 32- or 64-bit sources
...
4d802df3aa loosened the type restrictions
on these opcodes to enable support for 64-bit ballot operations. In
doing so, it enabled 8-bit and 16-bit sizes as well.
It's impossible to get these sizes through GLSL or SPIR-V. None of the
lowering in nir_opt_algebraic can handle non-32-bit sizes. Almost no
drivers can handle non-32-bit sizes.
It doesn't seem possible to enforce anything other than "one bit size"
or "all bit sizes" in nir_opcodes.py. The only way it seems possible to
enforce this is in nir_validate. This is not ideal, but it be what it
be.
v2: Remove restriction on find_lsb. It is acutally possible to get this
via GLSL by doing findLSB() on a lowp value. findMSB declares its
parameter as highp, so that path is still impossible.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
2d6f48f6ef
nir/algebraic: Do not generate 8- or 16-bit find_msb
...
The next commit will add validation to restrict this instruction (and
others) to only 32-bit or 64-bit sources.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
2119ab7319
nir/builder: Do not generate 8- or 16-bit find_msb
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
28311f9d02
nir: intel/compiler: Move ufind_msb lowering to NIR
...
Fossil-db results:
All Intel platforms had similar results. (Ice Lake shown)
Cycles in all programs: 9098346105 -> 9098333765 (-0.0%)
Cycles helped: 6
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
a4052e70ea
nir/algebraic: Only lower ufind_msb with 32-bit sources
...
The 31-ufind_msb_rev(x) lowering only produces the correct result for
32-bit sources. ufind_msb_rev can also have 64-bit sources, and most
platforms are expected to lower this to 32-bit instructions with extra
logic operations.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
0cc7bf63b7
nir: intel/compiler: Move ifind_msb lowering to NIR
...
Unlike ufind_msb, ifind_msb is only defined in NIR for 32-bit values, so
no @32 annotation is required.
No shader-db or fossil-db changes on any Intel platform.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Ian Romanick
66840b98e4
nir: ifind_msb_rev can only have int32 sources
...
Just like ifind_msb.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19042 >
2023-03-10 15:27:17 +00:00
Eric Engestrom
f5d3d1e7ed
meson: inline gtest_test_protocol now that it's always 'gtest'
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21485 >
2023-03-10 07:20:29 +00:00
antonino
3a59b2a670
nir: handle output beeing written to deref in nir_lower_point_smooth
...
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21731 >
2023-03-09 04:38:24 +00:00
Daniel Schürmann
3073810397
nir/gather_info: allow terminate() in non-PS
...
RADV will use terminate() to end ray-tracing shaders.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21736 >
2023-03-08 16:59:41 +00:00
Rhys Perry
98cb7e0108
nir: add nir_lower_alu_width_test.fdot_order
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20812 >
2023-03-08 14:38:26 +00:00
Rhys Perry
50f7e21481
nir: make fdph lowering match fdot
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20812 >
2023-03-08 14:38:26 +00:00