Eric Anholt
b6cb184e86
nir: Introduce nir_metadata_instr_index for nir_index_instr() being current.
...
This will be useful to remove the live_index field from nir_ssa_def.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3395 >
2020-10-20 08:53:36 -07:00
Timur Kristóf
d9cb9ff414
nir: Emit set_vertex_and_primitive_count for inactive streams.
...
This fixes issues in backends such as ACO which rely on always
getting this intrinsic to know the correct vertex and primitive
count.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7213 >
2020-10-20 07:11:29 +00:00
Vinson Lee
b17e264e66
glsl: Initialize lower_ubo_reference_visitor members in constructor.
...
Fix defects reported by Coverity Scan.
Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member buffer_access_type is not
initialized in this constructor nor in any functions that it
calls.
uninit_member: Non-static class member uniform_block is not
initialized in this constructor nor in any functions that it
calls.
uninit_member: Non-static class member progress is not initialized
in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7120 >
2020-10-15 23:03:12 +00:00
Caio Marcelo de Oliveira Filho
886d2d1a9a
spirv: Handle SpvOpTerminateInvocation
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7150 >
2020-10-15 21:40:09 +00:00
Caio Marcelo de Oliveira Filho
4dfd292307
spirv: Update headers and metadata from latest Khronos commit
...
This corresponds to c43a43c7cc3af55910b9bec2a71e3e8a622443cf
(" Register the Xenia emulator as a generator (#171 )") in
https://github.com/KhronosGroup/SPIRV-Headers .
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7150 >
2020-10-15 21:40:09 +00:00
Caio Marcelo de Oliveira Filho
f6d5dd825f
nir: Add nir_intrinsic_terminate and nir_intrinsic_terminate_if
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7150 >
2020-10-15 21:40:09 +00:00
Rhys Perry
f91b2fe384
nir/opt_load_store_vectorize: add some tests for discard/demote behaviour
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7163 >
2020-10-15 18:21:44 +00:00
Rhys Perry
f8e971f511
nir/opt_load_store_vectorize: don't vectorize stores across demote
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Fixes: ce9205c03b ("nir: add a load/store vectorization pass")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7163 >
2020-10-15 18:21:44 +00:00
Mike Blumenkrantz
4231cc2e99
glsl: more accurately handle swizzle in 64bit varying split with no left value
...
as implied in the surrounding code, left_components can be 0 here, in which
case creating a left swizzle is unnecessary (and triggers an assert)
this moves a failing assert farther down the stack to a more useful location
when trying to pack e.g., struct[3] { dvec3; float; }
ref spec@arb_gpu_shader_fp64@execution@inout@vs-out-fs-in-s1-s2@3-dvec2-float
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7134 >
2020-10-15 11:48:12 +00:00
Alejandro Piñeiro
9b01598fe5
nir/lower_io_to_scalar: update io semantics on per-component inst
...
When we replace the original instruction with per-channel operations,
the new instruction should inherint the semantics of the original
instruction.
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6721 >
2020-10-14 22:54:58 +00:00
Eric Anholt
4722491124
glsl/tests: Make the tests skip on Android binary execution failures.
...
We don't have a suitable exe wrapper for running them, and the missing
linker is throwing return code 255 instead of an ENOEXEC. Catch it and
return skip from the tests.
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6700 >
2020-10-14 16:54:59 +00:00
Daniel Schürmann
f503699e10
nir/opt_algebraic: optimize unpack_half_2x16_split_x(ushr, a, 16)
...
Same as extract_u16(a, 1)
Totals from 2021 (1.48% of 136546) affected shaders (RAVEN):
VGPRs: 129516 -> 129524 (+0.01%); split: -0.00%, +0.01%
CodeSize: 12485704 -> 12486600 (+0.01%); split: -0.00%, +0.01%
Instrs: 2435041 -> 2434999 (-0.00%); split: -0.00%, +0.00%
Cycles: 20952552 -> 20952624 (+0.00%); split: -0.00%, +0.00%
VMEM: 374492 -> 374212 (-0.07%); split: +0.01%, -0.08%
SMEM: 123309 -> 123291 (-0.01%); split: +0.00%, -0.02%
VClause: 64156 -> 64164 (+0.01%)
Copies: 191620 -> 191616 (-0.00%); split: -0.03%, +0.03%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6777 >
2020-10-14 15:31:38 +00:00
Rhys Perry
21422b1ff2
nir/opt_uniform_atomics: remove useless returns
...
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/7117 >
2020-10-14 09:53:34 +00:00
Iago Toral Quiroga
f4c754bcd1
nir: add a nir_get_ubo_size intrinsic
...
This is the same as nir_get_buffer_size but geared towards UBOs instead
of SSBOs. The new intrinsic is useful in Vulkan backends that need to
add bound checks on buffer accesses to honor the robust buffer access
feature.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766 >
2020-10-13 21:21:33 +00:00
Iago Toral Quiroga
6004ad9df1
nir/lower_io: add an option to lower interpolateAt functions
...
The option use_interpolated_input_intrinsics will lower these as well
as regular input loads. This is inconvenient for V3D, where we can
produce optimal code for regular input loads based on the input
variable layout qualifiers, so this change adds an option to only
lower instances of interpolateAt().
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766 >
2020-10-13 21:21:33 +00:00
Iago Toral Quiroga
50351df828
nir/glsl: add a glsl_ivec4_type() helper
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766 >
2020-10-13 21:21:32 +00:00
Alejandro Piñeiro
10b79bf901
nir: include texture query lod as one of the ops that requires a sampler
...
In practice we found that we need this for v3d (specifically for cube
map arrays, as they don't support the default value for wrap_i, so a
sampler object is needed to override that value).
It is worth to note that the main reason behind this auxiliar method
was to identify those cases that we didn't have a sampler object
available for Vulkan. So far, we found that we have a sampler object
coming from nir always for that operation.
Fixes cube map array tests like the following:
dEQP-VK.glsl.texture_functions.query.texturequerylod.usamplercubearray_fragment
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766 >
2020-10-13 21:21:31 +00:00
Rhys Perry
044d213086
scons: fix SPIR-V -> NIR build
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Tested-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Fixes: 18f9fc919e ('spirv: add and use a generator id enum')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7096 >
2020-10-13 16:53:10 +01:00
Rhys Perry
a7114f3f46
nir/opt_uniform_atomics: don't optimize atomics twice
...
Applications sometimes already do this optimization themselves.
fossil-db (Navi):
Totals from 51 (0.04% of 135946) affected shaders:
CodeSize: 507484 -> 501860 (-1.11%)
Instrs: 99635 -> 98471 (-1.17%)
Cycles: 2421944 -> 2414780 (-0.30%)
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/6558 >
2020-10-13 12:47:21 +00:00
Rhys Perry
bc43650522
nir/opt_uniform_atomics: optimize image atomics
...
fossil-db (Navi):
Totals from 65 (0.05% of 135946) affected shaders:
SGPRs: 3792 -> 3784 (-0.21%)
VGPRs: 2784 -> 2716 (-2.44%)
CodeSize: 707492 -> 713080 (+0.79%)
MaxWaves: 873 -> 887 (+1.60%)
Instrs: 133376 -> 134524 (+0.86%)
Cycles: 3004772 -> 3011440 (+0.22%)
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/6558 >
2020-10-13 12:47:21 +00:00
Rhys Perry
f83bc5beb8
nir: add pass to optimize uniform atomics
...
This optimizes atomics with a uniform offset so that only one atomic
operation is done in the subgroup.
For shaders which do a very large amount of atomics, this can
significantly improve performance.
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/6558 >
2020-10-13 12:47:21 +00:00
Rhys Perry
37b6b0967c
nir: allow divergence information to be updated when inserting instruction
...
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/6558 >
2020-10-13 12:47:21 +00:00
Rhys Perry
e1120f274f
nir: move divergence analysis options to nir_shader_compiler_options
...
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/6558 >
2020-10-13 12:47:21 +00:00
Rhys Perry
1a912a550f
nir: add last_invocation intrinsic
...
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/6558 >
2020-10-13 12:47:20 +00:00
Rhys Perry
8850a63161
radv/aco,nir/lower_subgroups: don't lower elect
...
ACO can implement this better.
fossil-db (Navi):
Totals from 33 (0.02% of 135946) affected shaders:
SGPRs: 1736 -> 1744 (+0.46%)
VGPRs: 1680 -> 1656 (-1.43%)
CodeSize: 246160 -> 245916 (-0.10%); split: -0.14%, +0.04%
MaxWaves: 449 -> 461 (+2.67%)
Instrs: 48301 -> 48266 (-0.07%); split: -0.12%, +0.05%
Cycles: 469740 -> 469240 (-0.11%); split: -0.18%, +0.08%
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/6558 >
2020-10-13 12:47:20 +00:00
Mike Blumenkrantz
c31ababae3
nir: update ubo locations in nir_lower_uniforms_to_ubo
...
locations are important for these because they provide info about how
many block indices each ubo takes up
UBO arrays have nonzero values here. all non-array UBOs have either 0
for the base or nonzero for an io lowered block at an offset,
but only arrays need to be changed here because they're the only ones
with absolute values, whereas all the others are relative.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6272 >
2020-10-13 12:31:40 +00:00
Mike Blumenkrantz
47c358233d
glsl: fix up location setting for variables pointing to a UBO's base
...
while linking uniforms, we might get a variable which is the only reference
to the ubo (i.e., offset 0), as determined by its type being the UBO's
interface_type, at which point we can assign the previously-gotten
block index to this variable's location
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5831 >
2020-10-13 12:13:18 +00:00
Rhys Perry
1070bba19e
android: fix SPIR-V -> NIR build
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Mauro Rossi <issor.oruam@gmail.com >
Fixes: 18f9fc919e ('spirv: add and use a generator id enum')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7097 >
2020-10-12 22:26:05 +00:00
Rhys Perry
037d9fb278
spirv: replace discard with demote for incorrect HLSL->SPIR-V translations
...
Fixes artifacts on decals in Path of Exile.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3610
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7062 >
2020-10-12 11:07:38 +00:00
Rhys Perry
18f9fc919e
spirv: add and use a generator id enum
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7062 >
2020-10-12 11:07:38 +00:00
Jason Ekstrand
181d5f59b8
nir: Allow more deref modes in phis
...
In particular, OpenCL needs to allow shader_temp and function_temp
through because they're 100% real pointers.
Fixes piglit CL calls.cl
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7092 >
2020-10-11 21:50:23 +00:00
Mauro Rossi
002a23efb4
android: util: Move xxd.py to util
...
Android porting of gen rules as per 22ffc05266 ("util: Move xxd.py to util")
Fixes the following building error:
ninja: error: 'external/mesa/src/compiler/glsl/xxd.py', needed by 'out/target/product/x86_64/gen/STATIC_LIBRARIES/libmesa_glsl_intermediates/glsl/float64_glsl.h', missing and no known rule to make it
Fixes: 22ffc05266 ("util: Move xxd.py to util")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7087 >
2020-10-11 23:22:34 +02:00
Jose Maria Casanova Crespo
e7127b3468
nir/algebraic: optimize iand/ior of (n)eq zero when umax/umin not available
...
Before 8e1b75b330 ("nir/algebraic: optimize iand/ior of (n)eq zero") this
optimization didn't need the use of umax/umin. VC4 HW supports only signed
integer max/min operations.
lower_umin and lower_umax are added to allow enabling previous optimizations
behaviour for this cases.
Fixes: 8e1b75b330 ("nir/algebraic: optimize iand/ior of (n)eq zero")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7083 >
2020-10-10 13:16:37 +02:00
John Bates
5de56937a3
disk_cache: build option for disabled-by-default
...
On some systems it is problematic to have the shader cache enabled
by default. This adds a build option to support the disk cache but
keep it disabled unless the environment variable
MESA_GLSL_CACHE_DISABLE=false.
For example, on Chrome OS, Chrome already has it's own shader
disk cache implementation so it disables the mesa feature. Tests
do not want the shader disk cache enabled because it can cause
inconsistent performance results and the default 1GB for the
disk cache could lead to problems that require more effort to
work around. The Mesa shader disk cache is useful for VMs though,
where it is easy to configure the feature with environment
variables. With the current version of Mesa, Chrome OS would need
to have a system-wide environment variable to disable the disk
cache everywhere except where needed. More elegant to just build
Mesa with the cache feature disabled by default.
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6967 >
2020-10-09 16:52:49 +00:00
Rhys Perry
5f2671bcc5
nir: return progress from nir_lower_io_to_scalar_early
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6891 >
2020-10-09 15:47:59 +00:00
Timur Kristóf
f11f4a2a4d
nir: Add ability to count primitives per stream.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964 >
2020-10-09 15:26:14 +02:00
Timur Kristóf
aac5adc3c2
nir: Count vertices per stream.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964 >
2020-10-09 15:26:14 +02:00
Timur Kristóf
70b94adddb
nir: Add ability to overwrite incomplete GS primitives.
...
After each end_primitive and at the end of the shader before emitting
set_vertex_and_primitive_count, we check if the primitive that is being
emitted has enough vertices or not, and we adjust the vertex and
primitive counters accordingly.
As a result, if the backend uses this option, the backend compiler
will not have to worry about discarding the unneeded vertices
and primitives.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964 >
2020-10-09 15:26:14 +02:00
Timur Kristóf
c977c369d3
nir: Add ability to count emitted GS vertices per primitive.
...
Add an option to nir_lower_gs_intrinsics so that it can also track
the number of emitted vertices per primitive, not just the total
vertex count.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964 >
2020-10-09 15:26:14 +02:00
Timur Kristóf
2be99012e9
nir: Add ability to count emitted GS primitives.
...
Add an option to nir_lower_gs_intrinsics which tells it to track
the number of emitted primitives, not just vertices. Additionally,
also make it per-stream.
Also rename the set_vertex_count intrinsic to
set_vertex_and_primitive_count.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6964 >
2020-10-09 15:26:14 +02:00
Jason Ekstrand
06a5edf247
nir/opt_deref: Fix the vector bitcast optimization
...
It assumes the parent is a vector or scalar so we need to fail if it
isn't.
Fixes: 9190f82d57 "nir/opt_deref: Add an optimization for bitcasts"
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7064 >
2020-10-08 12:22:45 -05:00
Kristian H. Kristensen
826a10255f
st/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM
...
Some GPUs can sample biplanar formats like NV12 natively, returning
the YUV values. Add a lowering type that uses that for sampling and
relies on existing colorspace conversions.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6693 >
2020-10-08 09:37:14 +00:00
Jason Ekstrand
2fa7c79045
spirv: Move nir_lower_libclc to src/compiler/spirv
...
This puts it in a shared place where everyone can get at it.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034 >
2020-10-07 21:52:04 +00:00
Jason Ekstrand
ef453f5439
spirv: Add a shared libclc loader
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034 >
2020-10-07 21:52:04 +00:00
Jesse Natalie
22ffc05266
util: Move xxd.py to util
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034 >
2020-10-07 21:52:04 +00:00
Dylan Baker
3ff513ee5d
glsl/xxd.py: fix imports
...
sys and string are unused, os is needed but not imported
fixes: 412472da5c
("glsl: Add utility to convert text files to C strings")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7034 >
2020-10-07 21:52:04 +00:00
Tony Wasserka
0ef2f1d4a0
nir: Fix unaligned pointer access
...
This was observed with the intel vulkan driver when running
dEQP-VK.spirv_assembly.instruction.compute.float32.comparison_1.modfstruct
with ubsan enabled.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6728 >
2020-10-07 19:50:01 +00:00
Tony Wasserka
6a9dc75cc2
nir: Fix undefined behavior due to signed integer multiplication overflows
...
Notably this happened when applying constant folding on the intermediate
computations generated from nir_lower_idiv.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6728 >
2020-10-07 19:50:01 +00:00
Marek Olšák
3f1b35a2f0
nir: add new helper passes that lower uniforms to literals
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6955 >
2020-10-07 17:30:12 +00:00
Marek Olšák
1e7d82c881
nir/algebraic: always lower idiv to shifts if bitops are allowed
...
why would you want anything else
The only platform significantly affected by this is Intel where `lower_idiv`
is not set today but neither is `lower_bitops`. There it seems to still be
a boon over-all.
Shader-db results on Ice Lake:
total instructions in shared programs: 19719051 -> 19735766 (0.08%)
instructions in affected programs: 106992 -> 123707 (15.62%)
helped: 0
HURT: 445
HURT stats (abs) min: 3 max: 295 x̄: 37.56 x̃: 44
HURT stats (rel) min: 0.16% max: 33.33% x̄: 19.60% x̃: 19.38%
95% mean confidence interval for instructions value: 33.60 41.53
95% mean confidence interval for instructions %-change: 18.97% 20.23%
Instructions are HURT.
total loops in shared programs: 5973 -> 5973 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0
total cycles in shared programs: 489405810 -> 486917482 (-0.51%)
cycles in affected programs: 4759097 -> 2270769 (-52.29%)
helped: 406
HURT: 34
helped stats (abs) min: 2 max: 64661 x̄: 6291.95 x̃: 3126
helped stats (rel) min: 0.02% max: 79.42% x̄: 43.32% x̃: 55.83%
HURT stats (abs) min: 2 max: 29376 x̄: 1947.12 x̃: 30
HURT stats (rel) min: 0.04% max: 23.82% x̄: 4.66% x̃: 1.33%
95% mean confidence interval for cycles value: -6753.06 -4557.52
95% mean confidence interval for cycles %-change: -42.60% -36.63%
Cycles are helped.
total spills in shared programs: 12481 -> 12482 (<.01%)
spills in affected programs: 47 -> 48 (2.13%)
helped: 0
HURT: 1
total fills in shared programs: 12816 -> 12819 (0.02%)
fills in affected programs: 71 -> 74 (4.23%)
helped: 0
HURT: 1
total sends in shared programs: 1010124 -> 1010124 (0.00%)
sends in affected programs: 0 -> 0
helped: 0
HURT: 0
LOST: 1
GAINED: 0
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6963 >
2020-10-07 10:50:53 -04:00