Commit graph

59845 commits

Author SHA1 Message Date
Mike Blumenkrantz
bf746b5921 zink: add a workaround for a nir_assign_io_var_locations bug
drivers that use nir_assign_io_var_locations() with EXT_shader_object all
have the same bug with a shader interface that looks like this:

shader output block:
* PSIZ
* VAR0
* VAR8

shader input block:
* VAR0
* VAR8

in this case, output driver locations will be assigned like:
* PSIZ=0
* VAR0=1
* VAR8=2

and input driver locations will be:
* VAR0=0
* VAR8=1

which breaks the shaders even though this is a totally legitimate thing
to do

thus, a second set of shaders have to be created without PSIZ to work around
the bug since I've already spent 18+ hours trying to fix it and have only succeeded
in breaking every driver that uses it

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22725>
2023-04-27 01:33:16 +00:00
Gert Wollny
337dc7d766 r600: remove TGSI code path
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7780
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7342

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21521>
2023-04-27 00:44:39 +00:00
Axel Davy
ad1e64551d frontend/nine: Fix num_textures count
util_last_bit already included the +1

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11865?commit_id=9205a45da50ebc6159169ba42b02d8475b09bfd7
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8894

cc: mesa-stable

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22645>
2023-04-26 21:45:02 +00:00
Mike Blumenkrantz
13eaa7cdd0 zink: reapply VkImageViewUsageCreateInfo when rebinding a surface
attachment bits must always be removed if they are not supported

fixes (ANV):
KHR-GL46.texture_view.view_classes

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22713>
2023-04-26 21:22:43 +00:00
Mike Blumenkrantz
792c2956ac zink: break out VkImageViewUsageCreateInfo applying for reuse
no functional changes

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22713>
2023-04-26 21:22:43 +00:00
Patrick Lerda
c39a2d67ea crocus: fix refcnt imbalance related to framebuffer
Indeed, the hardcoded framebuffer cleanup doesn't handle "resolve".

For instance, this issue is triggered with "piglit/bin/glx-copy-sub-buffer -samples=2 -auto"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

Fixes: f5bde99cbd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22554>
2023-04-26 21:07:44 +00:00
Karol Herbst
3af2ab02f3 rusticl/program: use if let to get rid of an unwrap in build
Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22434>
2023-04-26 20:49:42 +00:00
Karol Herbst
f745a07b36 rusticl/program: rework dynamic Program state
We had a lot of implicit locks going on even though there was strictly no
need in doing so. This makes the compilation APIs more atomic while also
providing a cleaner interface.

Not in the mood of splitting it up without deadlocking in the middle. So
it's one big commit sadly.

Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22434>
2023-04-26 20:49:42 +00:00
Antonio Gomes
2b01934bc8 rusticl: Move nir compilation to Program
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22434>
2023-04-26 20:49:42 +00:00
Mike Blumenkrantz
feb4103272 zink: prune some validation errors from ci
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22715>
2023-04-26 19:37:58 +00:00
Mike Blumenkrantz
2c77344048 bump VVL to 1.3.248
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22672>
2023-04-26 11:45:28 +00:00
Pavel Ondračka
ca634459c7 r300: add CI list of known rv370 dEQP failures
We don't have CI, but its still convenient for local testing.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22705>
2023-04-26 09:42:38 +00:00
Pavel Ondračka
db6c3cd13d r300: fix unconditional KIL on R300/R400
0: KIL -none.1111

Negate is not allowed for texturing opcodes, so the incorrect swizzle
was detected, however later optimization, where we try to rewrite incorrect
swizzles from constant (immediate) registers by adding a new ones with
correct order was interfering and not handling this correctly, so we
ended with

CONST[0] = {    -1.0000    -1.0000    -1.0000    -1.0000 }
  0: KIL const[0].xyz-w;

Even if it would get the swizzle right, texturing opcodes can't read from
constant registers, so just skip it and let this be handled by a later
part which inserts an extra mov instead.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Fixes: a8e1e5b5c2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22704>
2023-04-26 09:25:13 +00:00
Mike Blumenkrantz
4c47d83051 zink: use EXT_shader_object to implement generic separate shader precompile
this adds precompile for all separate shader stages (+tcs,tes,geom)
using separate shaders, which should eliminate stuttering for games
using it (e.g., Tomb Raider)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
234f9953a2 zink: fix longstanding TODO for generated tcs
with dynamic pcp this doesn't matter, and this should only be reached
in async mode if dynamic pcp is available

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
d5a3e2db89 zink: handle all stages in fixup_io_locations()
this makes the handling a bit more complex, as both input and output
need to be handled for most stages, and also the per-component handling
gets trickier

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
7a83d6289e zink: move separate shader creation to shader CSO creation
this is a more logical place for it and also enables u_blitter
shaders to be fast-linked

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
0d448d441c zink: use a more standardized loop for initing separate shader program descriptors
this should be identical to previous behavior

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
01694e5bf3 zink: assign separate shader prog stages from ctx->shader_stages
this is functionally equivalent given the checks above which already
restrict which stages can be passed

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
7415627853 zink: move some shader CSO functions around
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
fe095fcdcd zink: switch to a regular loop to wait on precompile shader fences
even if these aren't done yet, it'll still be faster to wait than
to start compiling new pipelines now

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
ab8499fe00 zink: streamline separate shader descriptor update
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
991d9d9924 zink: simplify separate shader prog init a little
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
38d149ffc7 zink: use intermediate variable for separate shader db resize check
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Mike Blumenkrantz
f46e5f2c0c zink: use intermediate variable for separate shader descriptor update loop
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22671>
2023-04-26 05:12:25 +00:00
Qiang Yu
a4b60295a7 aco,ac/llvm,radv,radeonsi: handle ps bc optimization in nir for radv
The side effect is removing the aco/llvm backend bc optimization code
and linear/persp_centroid variable.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22199>
2023-04-26 03:27:26 +00:00
Charmaine Lee
c661f38342 svga: set PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY for VGPU10 device
Instead of forcing vertex buffer stride to be 4 byte aligned only,
DX10 actually allows the stride to be non 4-byte aligned but the
alignment of an element must be the nearest power of 2 greater or equal to the
width of the element's format, or 4, whichever is less.  So the requirement is
better met with PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY which if set to
TRUE, the sum of vertex element offset + vertex buffer offset + vertex buffer
stride must be aligned to the vertex attributes component size.
Note: PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY cannot be set
with other alignment-requiring CAPs, so we have to return 0 for all the
other alignement CAPs.

This avoids some unnecessary software vertex translate fallback.

cc: mesa-stable

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22689>
2023-04-26 02:29:34 +00:00
Emma Anholt
74a8f118a2 ci/zink: Try to update TGL results for new MSAA behavior.
A few fixes, but mostly tons of new GPU hangs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22691>
2023-04-25 22:36:15 +00:00
Emma Anholt
0e9036c55e ci/crocus: Note a recent regression.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22691>
2023-04-25 22:36:15 +00:00
Emma Anholt
72520e5a7b ci/lima: Skip ppgtt_memory_alignment that flaked a job with the oomkiller.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22691>
2023-04-25 22:36:15 +00:00
Patrick Lerda
6a8e6716ac aux/draw: fix memory leak related to ureg_get_tokens()
Indeed, the function nir_to_tgsi() returns an ureg_get_tokens() allocated
object which is assigned locally. The ureg_get_tokens() allocated object
should be freed.

For instance, this issue is triggered with a llvm enabled lima,
"piglit/bin/gl-1.0-rendermode-feedback -auto -fbo":
Direct leak of 512 byte(s) in 1 object(s) allocated from:
    #0 0x7faeaa4500 in __interceptor_realloc (/usr/lib64/libasan.so.6+0xa4500)
    #1 0x7fa4a88f1c in tokens_expand ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:239
    #2 0x7fa4a88f1c in get_tokens ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:262
    #3 0x7fa4a900f4 in copy_instructions ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:2079
    #4 0x7fa4a900f4 in ureg_finalize ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:2129
    #5 0x7fa4a91dfc in ureg_get_tokens ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:2206
    #6 0x7fa4b20a2c in nir_to_tgsi_options ../src/gallium/auxiliary/nir/nir_to_tgsi.c:4011
    #7 0x7fa4a0c914 in draw_create_vertex_shader ../src/gallium/auxiliary/draw/draw_vs.c:77

Fixes: b5e782f5f4 ("aux/draw: use nir_to_tgsi for draw shader in llvm path")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21924>
2023-04-25 20:04:43 +00:00
Mike Blumenkrantz
32dddb90ad zink: print the type of shader when dumping
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22692>
2023-04-25 19:04:39 +00:00
Rob Clark
d437e389e0 freedreno: Fix resource tracking vs rebind/invalidate
We can now no longer rely on certain dirty bits to re-trigger draw time
resource tracking.  We need to use the new fd_dirty*_resource() APIs.

Fixes `org.skia.skqp.SkQPRunner#gles_recordopts` on android 9.

Fixes: 0a62a874fc ("freedreno: Re-work dirty-resource tracking")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22683>
2023-04-25 17:41:25 +00:00
antonino
39770c6503 zink: fix store subsitution in lower_pv_mode_gs_store
Previously it was assumed that between the and the variable there was
only one deref.

To handle all cases a new function is introduced that recreates a chain
of derefs.

Fixes: 5a4083349f ("zink: add provoking vertex mode lowering")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22678>
2023-04-25 15:00:48 +00:00
antonino
a0645e3383 nir/zink: use sysvals in nir_create_passthrough_gs
Previously the passthrough gs shader loaded some values with uniform
loads using sevaral hardcoded values.

This was not flexible for other drivers and started becoming too
unflexible for zink itself.

Use system values instead and use a lowering pass in zink.

Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22667>
2023-04-25 13:11:59 +00:00
Tapani Pälli
5e5ca30785 iris: implement state cache invalidate for Wa_16013063087
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22651>
2023-04-25 10:45:55 +00:00
Pierre-Eric Pelloux-Prayer
65b40d0b7e radeonsi: implement fw based mcbp
Some chips support firmware based mcbp. If supported this means
radeonsi needs to allocate 3 buffers and pass them to the firmware.

From there, the firmware will handle mcbp and register shadowing
on its own so we don't need to insert LOAD packet in the preamble.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21986>
2023-04-25 06:47:11 +00:00
Emma Anholt
6986cf1d89 ci/zink: Drop anv/lvp validation exceptions that should be fixed in the CTS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22495>
2023-04-25 04:43:10 +00:00
Emma Anholt
71fda36e7d ci/deqp: Update to 1.3.5.1 and pull in additional bugfixes from main.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22495>
2023-04-25 04:43:10 +00:00
Emma Anholt
8dc0015448 ci: Move some timeout xfails to skips.
We generally don't want to wait around for a minute for things to fail.
Note that some of these were already in their skips.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22495>
2023-04-25 04:43:09 +00:00
Karol Herbst
cc0de56a0e rusticl/device: allow enablement of fp64 via RUSTICL_FEATURES
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22649>
2023-04-25 04:27:57 +00:00
Karol Herbst
b90d1cfbfe rusticl/platform: add RUSTICL_FEATURES boilerplate
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22649>
2023-04-25 04:27:57 +00:00
Karol Herbst
389a199993 rusticl/platform: extract env variable parsing from Platform::init
In our platform initialization code we might want to access the parsed env
variables already. So do this in separate steps.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22649>
2023-04-25 04:27:57 +00:00
Karol Herbst
2283e9d155 rusticl/platform: make the initialization more explicit
It's not a lazy loaded type so doing the Once::call_once in every
Platform::get gives us a pointless atomic, which might be slow on some
platforms.

Every application has to call clGetPlatformIDs so we only need to do it
there.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22649>
2023-04-25 04:27:57 +00:00
Karol Herbst
400847a990 rusticl/device: improve advertisement of fp64 support
Enabling fp64 support makes rarely sense, but in case we do claim it, we
should also tell if it's a pure software implementation.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22649>
2023-04-25 04:27:57 +00:00
M Henning
b82004d960 gallium: Add pipe_shader_state_from_nir
and use it in nouveau

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22537>
2023-04-25 03:46:34 +00:00
M Henning
5889c13fcd nv50,nvc0: Use ttn for tgsi shaders by default
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22537>
2023-04-25 03:46:34 +00:00
M Henning
44db89b937 nv50,nvc0: Stop advertising TGSI by default
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22537>
2023-04-25 03:46:34 +00:00
M Henning
d11145e837 nv50,nvc0: Use nir in nv50_blitter_make_fp
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22537>
2023-04-25 03:46:34 +00:00
M Henning
a019d15668 nvc0: Use nir in nvc0_blitter_make_vp
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22537>
2023-04-25 03:46:34 +00:00