Tapani Pälli
415b824bc6
iris: implement occlusion query related Wa_14017076903
...
Fixes artifacts on some games that relied on occlusion query
results when no PS or depth buffers are bound.
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/21721 >
2023-03-21 12:56:51 +00:00
Tapani Pälli
c34916f841
anv: implement occlusion query related Wa_14017076903
...
Fixes artifacts on some games that relied on occlusion query
results when no PS or depth buffers are bound.
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/21721 >
2023-03-21 12:56:51 +00:00
Juan A. Suarez Romero
c10a9372d6
v3d: implement NV_conditional_render extension
...
The hardware doesn't support native conditional rendering, so it is
implemented by software.
Code borrowed from Freedreno and Panfrost.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17373 >
2023-03-21 12:31:24 +00:00
Juan A. Suarez Romero
94de8767aa
v3d: include offset as part of streamout target
...
When dealing with multiple Transform Feedback buffers, each of them
needs to have their own offset, so when resuming from one to another we
know exactly were to continue adding primitives.
Fixes "spec@arb_transform_feedback2@change objects while paused (gles3)"
piglit test.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17373 >
2023-03-21 12:31:24 +00:00
Juan A. Suarez Romero
6d21d563a1
v3d: cache pipe query results
...
As the BO storing the results is destroyed after getting the query
results, store the results in case requesting the results again.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17373 >
2023-03-21 12:31:24 +00:00
Lionel Landwerlin
957186102f
anv: report shader max dispatch width in pipeline props
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22014 >
2023-03-21 11:53:04 +00:00
Lionel Landwerlin
2acc2f18ea
intel/compiler: report max dispatch width statistic
...
Most tools looking at shader stats assume that there is only a single
resulting binary shader out of a single input. On Intel HW this is not
always the case. So having a statistic on each variant that reports
the maximum dispatch width helps showing improvement on a single
shader in terms of how large we manage to compile it.
For shaders that can be compiled in multiple SIMD width (like fragment
shaders), this will report the maximum dispatch width in the
statistics of each variants.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22014 >
2023-03-21 11:53:04 +00:00
Iago Toral Quiroga
1e28f2a6f2
broadcom/compiler: track pending ldtmu count with each TMU lookup
...
And use this information when scheduling QPU to avoid merging
a new TMU request into a previous ldtmu instruction when doing
so may cause TMU output fifo overflow due to a stalling ldtmu.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22044 >
2023-03-21 11:29:05 +00:00
Erik Faye-Lund
c09482b293
docs: fixup broken indentation
...
This extra indentation caused these to be inside <blockquote>-tags,
which obviously isn't what we want.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21927 >
2023-03-21 11:24:13 +00:00
Erik Faye-Lund
46143ecc4c
docs: escape a few more strings
...
This makes it more obvious that these are not just plain english words.
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21896 >
2023-03-21 11:19:41 +00:00
Erik Faye-Lund
331601abda
docs: fixup broken envvar-role syntax
...
This needs a leading colon, otherwise it renders as "envvar:" followed
with environment variable using the c-expression role.
Fixes: 4c19426fd6 ("docs/envvars: add missing mesa disk cache envvars")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21896 >
2023-03-21 11:19:41 +00:00
Samuel Pitoiset
f2aa0e80a0
radv: enable fullyCoveredFragmentShaderInputVariable on GFX9+
...
For vkd3d-proton Tier 3.
It's passing CTS and vkd3d-proton tests.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8311
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
8e84251cc7
radv: implement fullyCoveredFragmentShaderInputVariable
...
1 means INNER_COVERAGE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
ebbb0d3f1b
radv: enable SAMPLE_COVERAGE_ENA if the fully covered built-in is used
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
2a02f567aa
radv: lower nir_intrinsic_load_fully_covered
...
The sample coverage VGPR input would be the inner coverage and 0 means
it's uncovered.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +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
Benjamin Cheng
e57caf9893
radv: initialize cmd_buffer upload list earlier
...
When cs allocation fails in radv_create_cmd_buffer,
radv_destroy_cmd_buffer is called before returning
VK_ERROR_OUT_OF_HOST_MEMORY. At that point, the upload list is not
initalized yet, so SIGSEGV will occur when trying to iterate through the
upload bo list. Initialize the upload list earlier to avoid this.
Signed-off-by: Benjamin Cheng <ben@bcheng.me >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22016 >
2023-03-21 08:06:24 +00:00
Mike Blumenkrantz
270f9c0b06
zink: add ZINK_DEBUG=flushsync
...
this disables the submission thread
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22040 >
2023-03-20 22:12:40 -04:00
Mike Blumenkrantz
6a45e0d991
zink: don't update fbfetch in db mode if inputAttachmentDescriptorSize==0
...
turnip gets away with this somehow, so silence harmless validation errors
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22040 >
2023-03-20 22:12:22 -04:00
Mike Blumenkrantz
46212427f9
zink: rework handling of unordered->ordered write buffer barriers
...
this improves handling for barriers that originate from a write in the
unordered cmdbuf, adding tracking to resources to better determine access
in the unordered cmdbuf and then utilizing that to generate a single split
memory barrier added at the end of the unordered cmdbuf for all the buffers
written to on that cmdbuf
the next step will be to also merge the read access down onto the end-of-cmdbuf
barrier so that all stream upload-type functionality becomes a single barrier
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
e83513832b
zink: always set sampler layouts when unbinding fb images while rp optimizing
...
this may or may not always be accurate, but in the cases where it is, it should
avoid some renderpass splitting, and in the cases where it isn't, there may
already be issues
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
c2b3c7b6be
zink: only run post-fb-unbind layout stuff if the resource isn't being destroyed
...
if refcount==1, the resource won't be used any further, and all the code
in this block is only for resources that will be used as samplers,
so don't run any of it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
b442ea4700
zink: add an assert to ensure zsbuf invalidation doesn't break rendering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
ad9a5c252a
zink: force unordered_write=false when binding image descriptors
...
there's no way to link up image layouts between the unordered cmdbuf
and the main one, so if an op is promoted to unordered after an image
is used as a descriptor, the layout will be broken
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
eaeb1350be
zink: fix unordered access for image descriptors
...
previously the unordered access flags would be set before the deferred
barrier was added, which would guarantee no descriptor barriers could
be deferred and thus terminate renderpasses any time a new descriptor
was bound that was both an image and needed a layout change
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
5018bc1358
zink: add batch refs for framebuffer surfaces on bind and ref update
...
if this scenario occurs:
* bind fb on ctx A
* draw
* flush + change context to B
* read fb on ctx B
* delete ctx A
then a dead batch write will be left on the fb bo
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
c2d2cb5e45
zink: flag some rp ends as unsafe
...
the only "safe" rp ends are:
* set_framebuffer_state (new rp)
* flush_resource (present)
* flush (end of rp)
any other rp end needs its rp info sanitized to avoid e.g., reapplying clears
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
7ca5656c49
zink: never split a renderpass for a loadop change
...
not sure if this was possible, but make sure it's not
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
61c236bc31
zink: delete unused barrier api
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
30d59c469a
zink: simplify resource_check_defer_buffer_barrier()
...
this is a remnant of when the function was used for both images
and buffers
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +00:00
Mike Blumenkrantz
ca43ecefa4
zink: handle swapchain creation failure less lazily
...
this is a real scenario
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22027 >
2023-03-21 01:39:39 +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
Faith Ekstrand
92ea49edcb
anv: Implement VK_KHR_map_memory2
...
Reviewed-by: Iván Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22031 >
2023-03-20 23:11:09 +00:00
Faith Ekstrand
f4a5b2d59e
anv: Limit memory maps to the client-allocated size
...
No need to expose extra padding or CCS data to the client map. Now that
we have the data, we can also make the BindBufferMemory asserts a bit
more accurate.
Reviewed-by: Iván Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22031 >
2023-03-20 23:11:09 +00:00
Faith Ekstrand
b4497e54be
vulkan: Provide wrappers for VK_EXT_map_memory2 functions
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Iván Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22031 >
2023-03-20 23:11:09 +00:00
Faith Ekstrand
8af4fa3d4b
vulkan: Update XML and headers to 1.3.244
...
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Iván Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22031 >
2023-03-20 23:11:09 +00:00
Mike Blumenkrantz
efa6387a09
zink: convert luminance/alpha clear colors in dynamic texture clear
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22025 >
2023-03-20 22:19:09 +00:00
Mike Blumenkrantz
600b8ba75c
zink: split out luminance/alpha clear conversion code for reuse
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22025 >
2023-03-20 22:19:08 +00:00
Patrick Lerda
84762bb1cf
glx: fix memory leak related to __glXCloseDisplay()
...
Indeed, the unbind function is not called which could lead
to an unbalanced refcount state for the "drawable" object.
For instance, with "piglit/bin/glx-fbo-binding -auto"
while setting GALLIUM_REFCNT_LOG=refcnt.log.
Signed-off-by: Patrick Lerda <patrick9876@free.fr >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22024 >
2023-03-20 21:12:54 +00:00
Lang Yu
19b89c8077
amd/common: fix a typo
...
Fixes: 35f053ba8c ("radv: Fix corrupted mipmap copies on GFX9+")
Signed-off-by: Lang Yu <lang.yu@amd.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22000 >
2023-03-20 20:30:32 +00:00