diff options
author | Eric Anholt <eric@anholt.net> | 2021-04-09 16:10:30 -0700 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2021-04-18 22:13:27 +0200 |
commit | 8636a1220c22e19978ee26b47fb20dc1346dd128 (patch) | |
tree | a3c88478bb278948680637b362aa35602a90c087 /docs | |
parent | 743b02f9394869da4f1f9ce2f43f190e3846044b (diff) |
nir: Generate load_ubo_vec4 directly for !PIPE_CAP_NATIVE_INTEGERS
The prog_to_nir->NIR-to-TGSI change ended up causing regressions on r300,
and svga against r300-class hardware, because nir_lower_uniforms_to_ubo()
introduced shifts that nir_lower_ubo_vec4() tried to reverse, but that NIR
couldn't prove are no-ops (since shifting up and back down may drop bits),
and the hardware can't do the integer ops.
Instead, make it so that nir_lower_uniforms_to_ubo can generate
nir_intrinsic_load_ubo_vec4 directly for !INTEGER hardware.
Fixes: cf3fc79cd0ab ("st/mesa: Replace mesa_to_tgsi() with prog_to_nir() and nir_to_tgsi().")
Closes: #4602
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10194>
(cherry picked from commit 5de3cbbb2e66fcdb7d6219b78b89ad932ecadbd5)
Diffstat (limited to 'docs')
-rw-r--r-- | docs/gallium/screen.rst | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/gallium/screen.rst b/docs/gallium/screen.rst index cdc1467c78a..b1b0dc5559d 100644 --- a/docs/gallium/screen.rst +++ b/docs/gallium/screen.rst @@ -481,7 +481,8 @@ The integer capabilities: those bits set, pipe_context::set_constant_buffer(.., 0, ..) is ignored by the driver, and the driver can throw assertion failures. * ``PIPE_CAP_PACKED_UNIFORMS``: True if the driver supports packed uniforms - as opposed to padding to vec4s. + as opposed to padding to vec4s. Requires ``PIPE_SHADER_CAP_INTEGERS`` if + ``lower_uniforms_to_ubo`` is set. * ``PIPE_CAP_CONSERVATIVE_RASTER_POST_SNAP_TRIANGLES``: Whether the ``PIPE_CONSERVATIVE_RASTER_POST_SNAP`` mode is supported for triangles. The post-snap mode means the conservative rasterization occurs after |