Boris Brezillon [Thu, 23 Sep 2021 14:17:32 +0000 (16:17 +0200)]
panvk: Only prepare texture descriptors when the image is sampled
Not that input attachments will be lowered to textures, so we need to
create a texture descriptor in that case too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 14:15:02 +0000 (16:15 +0200)]
panvk: Don't expect subpasses to use all RTs
Some might use a subset, and that's fine, we just need to disable unused
RTs when beginning a subpass, which we do.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 14:10:51 +0000 (16:10 +0200)]
panvk: Fix an overflow on cmdbuf->state.clear
We assume the cmdbuf->state.clear array will have one entry per
attachment, but clearValueCount might be smaller if some attachments
are not cleared.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 11:10:28 +0000 (13:10 +0200)]
panvk: Handle input varyings without previous writes
Some input varyings might not be written by any of the active stages
preceding the stage reading the varying (e.g. gl_Layer should be set
to 0 when not written by vertex/geometry shaders). In this case, we can
insert a dummy varying attribute returning zero. This is actually what
the code intended to do, but 2 things were missing:
1. formats[NONE] is not mapping to the CONSTANT0 format
2. the offset and strides should always be set to 0 when using a
CONSTANT0 attribute
All of this is needed to have the input attachments working. Indeed, we
use the nir_lower_input_attachments() pass which lowers input attachment
loads to texel fetches, and the txf operation is passed the layer_id
in its 3rd coordinate.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 07:58:41 +0000 (09:58 +0200)]
panvk: Avoid allocating sysvals UBOs when the pipeline has one
The static sysval UBO attached to the pipeline will be used anyway,
so let's not waste memory for sysvals if we can avoid it.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 07:54:37 +0000 (09:54 +0200)]
panvk: Fix multisample image copies
panvk_meta_copy_img2img() was assuming single-sample images, but the
spec actually allows copying multisample images, as long as the source
and destination agree on the number of samples.
Let's extend the img2img copy logic to support that case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 07:51:17 +0000 (09:51 +0200)]
panvk: Fix panvk_pipeline_builder_upload_sysval()
Call panvk_sysval_upload_viewport_offset() instead of
panvk_sysval_upload_viewport_scale() in the PAN_SYSVAL_VIEWPORT_OFFSET
case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:51:46 +0000 (12:51 +0200)]
panvk: Fix the pipeline binding logic
Right now, only one pipeline can be bound at any given time, instead of
one per bind-point. Fix the code so we can support compute operations.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 23 Sep 2021 15:36:45 +0000 (17:36 +0200)]
panvk: Don't invalidate the vertex attributes when binding a new pipeline
This should be done when binding new vertex buffers.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:36:53 +0000 (12:36 +0200)]
panvk: Use the local batch variable when we have one
s/cmdbuf->state.batch->/batch->/ when the batch variable exists.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:23:32 +0000 (12:23 +0200)]
panvk: Make panvk_cmd_open_batch() return the new batch
So we can get replace the
panvk_cmd_open_batch();
batch = cmdbuf->state.batch;
sequence by
batch = panvk_cmd_open_batch();
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 10:13:44 +0000 (12:13 +0200)]
panvk: Extend panvk_cmd_close_batch() to handle current_batch == NULL
This way callers don't have to check it.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Thu, 16 Sep 2021 09:42:28 +0000 (11:42 +0200)]
panvk: Fix TLS initialization for multi-draw batches
If we queue multiple draws to the same batch, the TLS size should be
adjusted to cover the maximum TLS size requirement, not just the one
of the pipeline bound when the batch is closed. This requires keeping
TLS info attached to the batch and updating it every time a draw is
issued.
While at it, get rid of the wg_count state: we'll let vkCmdDispatch()
calculate the total WLS size.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Wed, 15 Sep 2021 07:03:26 +0000 (09:03 +0200)]
panvk: Fix the static scissor/viewport case
Even if we can build a static viewport descriptor, we will need the
static scissor/viewport data to fill the viewport sysvals.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Boris Brezillon [Wed, 15 Sep 2021 06:59:16 +0000 (08:59 +0200)]
panvk: Always allocate at least one BLEND descriptor for fragment shaders
Even there's no render target.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077>
Samuel Pitoiset [Mon, 27 Sep 2021 12:35:54 +0000 (14:35 +0200)]
radv: remove vs_common_out:export_prim_id
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/13062>
Samuel Pitoiset [Mon, 27 Sep 2021 12:21:33 +0000 (14:21 +0200)]
radv: remove unnecessary init of outinfo.export_prim_id for GS
When a geometry shader is present, not writing the gl_PrimitiveID is
undefined, so this is unnecessary. Note that this was never reached
on <= GFX8 because vs_common_out.export_prim_id from the GS key was
always FALSE.
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/13062>
Samuel Pitoiset [Mon, 27 Sep 2021 11:32:49 +0000 (13:32 +0200)]
radv: remove unnecessary radv_shader_info:{vs,tes}.export_prim_id
Use the VS outputinfo struct instead.
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/13062>
Lionel Landwerlin [Tue, 28 Sep 2021 11:33:08 +0000 (14:33 +0300)]
microsoft/clc: drop LLVM dependency to version < 12
Prior to LLVM 12, SmallVector requires 2 template arguments.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
c4755a7c32e66c ("microsoft/clc: Support SPIR intermediates in the compilation APIs")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13083>
Samuel Pitoiset [Mon, 27 Sep 2021 10:05:51 +0000 (12:05 +0200)]
radv: remove unnecessary vs_common_out.export_layer_id
Same as the viewport index, the driver will emit 0 for the PS input
in this case.
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/13061>
Samuel Pitoiset [Mon, 27 Sep 2021 10:00:24 +0000 (12:00 +0200)]
radv: remove unnecessary vs_common_out.export_viewport_index
This was only used when the FS needs the viewport index if it's not
exported by the previous stage. Though, this is actually useless
because the driver will emit 0 for the PS input in this case.
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/13061>
Pierre-Eric Pelloux-Prayer [Fri, 24 Sep 2021 09:05:07 +0000 (11:05 +0200)]
radeonsi/test: add sanity checks
Verify that DISPLAY is there and deqp-runner is at least 0.9.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Fri, 24 Sep 2021 08:13:59 +0000 (10:13 +0200)]
radeonsi/test: add Raven expected results
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Thu, 23 Sep 2021 10:00:02 +0000 (12:00 +0200)]
radeonsi/test: add --gpu to select the GPU to test
And specify DRI_PRIME + WAFFLE_GBM_DEVICE to avoid testing the wrong GPU.
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Tue, 21 Sep 2021 16:44:16 +0000 (18:44 +0200)]
radeonsi/test: sanitize output_folder
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Tue, 21 Sep 2021 16:37:09 +0000 (18:37 +0200)]
radeonsi/test: allow to specify a baseline folder
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Pierre-Eric Pelloux-Prayer [Tue, 21 Sep 2021 16:36:46 +0000 (18:36 +0200)]
radeonsi/test: print default values in help
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021>
Rhys Perry [Mon, 6 Sep 2021 17:21:46 +0000 (18:21 +0100)]
radv: don't require a GS copy shader to use the cache with NGG VS+GS
Fixes dEQP-VK.pipeline.cache.no_cache_control.readwrite_cache.pipeline_from_get_data.vertex_stage_geometry_stage_fragment_stage
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes:
7e664a53835 ("radv: Don't generate GS copy shader when the pipeline has NGG.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12741>
Samuel Pitoiset [Mon, 27 Sep 2021 17:26:40 +0000 (19:26 +0200)]
radv: remove unused radv_nir_compiler_options fields
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/13067>
Samuel Pitoiset [Mon, 27 Sep 2021 17:19:36 +0000 (19:19 +0200)]
radv: cleanup uses of VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
Use the pipeline key instead of this mess.
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/13067>
Timothy Arceri [Fri, 17 Sep 2021 14:51:25 +0000 (00:51 +1000)]
util/cache: test simple cache put and get between instances
To make sure we are not just using the in-memory cache index for
the single file cache, we test adding and retriving cache items
between two different cache instances.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12925>
Ella-0 [Sat, 25 Sep 2021 15:51:16 +0000 (15:51 +0000)]
v3d: add R10G10B10X2_UNORM to format table
Fixes following piglit fails:
spec@ext_framebuffer_object@fbo-blending-formats
spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB10
Cc: mesa-stable
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13051>
Roland Scheidegger [Fri, 24 Sep 2021 15:57:05 +0000 (17:57 +0200)]
lavapipe: Fix crashes with transform feedback when using VK_WHOLE_SIZE
llvmpipe expects valid size parameter, and when just VK_WHOLE_SIZE is
passed very bad things can happen.
This was handled specially before, but got dropped when lavapipe was
converted to use the generated command queue.
Fixes:
eb7eccc76f0a ("lavapipe: Use generated command queue code")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13036>
Mike Blumenkrantz [Fri, 17 Sep 2021 20:15:00 +0000 (16:15 -0400)]
anv: assert that legacy_scanout isn't used with explicit modifiers
these should be mutually exclusive
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12919>
Caio Marcelo de Oliveira Filho [Fri, 24 Sep 2021 05:59:40 +0000 (22:59 -0700)]
iris: Document push constants allocation
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13014>
Caio Marcelo de Oliveira Filho [Fri, 24 Sep 2021 05:59:40 +0000 (22:59 -0700)]
intel: Add and use max_constant_urb_size_kb
This knowledge was repeated in multiple places so move the values to
intel_device_info struct.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13014>
Lionel Landwerlin [Mon, 27 Sep 2021 15:00:03 +0000 (18:00 +0300)]
spirv: don't bother initializing variables to Undef
If an OpVariable's initializer is undef, there is no need to
initialize the variable.
v2: Comment the code (Caio)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13030>
Lionel Landwerlin [Fri, 24 Sep 2021 12:19:50 +0000 (15:19 +0300)]
spirv: workaround LLVM-SPIRV Undef variable initializers
The LLVM-SPIRV translator creates variables with initializers, but
most of those are actually undef initializers. We can just skip
composites that are entirely made of undefs, but for partially undefs,
we will still zero initialize.
v2: Rename wa_llvm_spirv_undef_initializer to wa_llvm_spirv_ignore_workgroup_initializer (Caio)
Limit workaround to OpenCL (Caio)
Make workaround clearer (Caio)
v3: Only apply workaround on workgroup storage (Caio)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13030>
Lionel Landwerlin [Fri, 24 Sep 2021 12:16:44 +0000 (15:16 +0300)]
spirv: avoid shadowing local variable
v2: rename s/eval/elem_val/ (Caio)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13030>
Jesse Natalie [Sun, 26 Sep 2021 17:46:04 +0000 (10:46 -0700)]
clover: Rename module -> binary, because C++20 makes module a keyword
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12273>
Jesse Natalie [Sun, 8 Aug 2021 15:59:58 +0000 (08:59 -0700)]
clover: Delete unused 'e' exception reference vars
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12273>
Jesse Natalie [Sun, 26 Sep 2021 18:03:56 +0000 (11:03 -0700)]
clover: std::result_of is deprecated in c++17 and removed in c++20
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12273>
Emma Anholt [Sat, 25 Sep 2021 22:42:06 +0000 (15:42 -0700)]
i915g: Use the non-vbuf code path by default to fix index overflows.
We were assertion failing on some large draws due to indices >16bits,
despite asking draw to limit the max indices. I haven't managed to track
it down, so flip us back to the older, non-index drawing path that doesn't
hit this bug until it can get fixed. Leave an I915_DEBUG=vbuf flag around
so we can look into this later.
This is a pretty big performance hit for vertex shaders. Using glmark2 -b
build:use-vbo=true:
i915g-vbuf: 211 fps
i915g-nonvbuf: 185 fps
i915c: 41 fps
Given how massively better i915g still is than i915c (llvmpipe VS instead
of the classic swrast interpreter), I think it's still worth it to get
i915g correct before we fix this perf regression.
Fixes: #4971
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>
Emma Anholt [Wed, 16 Jun 2021 04:52:04 +0000 (21:52 -0700)]
i915g: Unifdef VBUF_MAP_BUFFER.
You do want to stream the vertices out to the WC mapping, as the code has
been doing, rather than writing into malloc and doing a memcpy later and
wasting cache space.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>
Emma Anholt [Wed, 16 Jun 2021 04:49:03 +0000 (21:49 -0700)]
i915g: Remove dead VBUF_USE_POOL code.
Not defined anywhere, and the members it's setting up don't exist.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>
Emma Anholt [Wed, 16 Jun 2021 04:45:35 +0000 (21:45 -0700)]
i915g: Improve debug output for the fresh-batch overflow case.
Much more useful info for dEQP-GLES2.functional.buffer.write.random.0 than
"i915_vbuf_render_draw_elements: Assertion `0' failed."
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13052>
Juan A. Suarez Romero [Mon, 27 Sep 2021 13:22:04 +0000 (15:22 +0200)]
ci/vc4: add piglit timeout
Acked-by: Emma Anholt <emma@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13065>
Emma Anholt [Fri, 24 Sep 2021 00:33:31 +0000 (17:33 -0700)]
turnip: Disable VK_EXT_display_control.
The common code fails dEQP-VK.wsi.display_control.register_device_event
due to having a stub NOT_IMPLEMENTED return, and thus fails the CTS. This
is one of our last failures, so disable the extension until it can get
finished off, so we can unblock passing the CTS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13010>
Daniel Schürmann [Wed, 19 May 2021 07:23:20 +0000 (09:23 +0200)]
aco: try forming clauses even if reg_pressure exceeds
This patch allows to form clauses even if the register pressure
is at the limit with the effect that VMEM instructions are less
scattered after the first clause in a Block.
It respects the previous clause size to avoid excessive moving
of VMEM instructions.
VMEM_CLAUSE_MAX_GRAB_DIST is further reduced to compensate
some of the effects.
Totals from 28922 (19.26% of 150170) affected shaders: (GFX10.3)
VGPRs: 1546568 -> 1523072 (-1.52%); split: -1.52%, +0.00%
CodeSize:
117524892 ->
117510288 (-0.01%); split: -0.08%, +0.07%
MaxWaves: 605554 -> 611120 (+0.92%)
Instrs:
22292568 ->
22291927 (-0.00%); split: -0.10%, +0.09%
Latency:
488975399 ->
490230904 (+0.26%); split: -0.06%, +0.32%
InvThroughput:
117842300 ->
116521653 (-1.12%); split: -1.15%, +0.03%
VClause: 541550 -> 522464 (-3.52%); split: -9.73%, +6.20%
SClause: 718185 -> 718298 (+0.02%); split: -0.00%, +0.02%
Copies: 1420603 -> 1386949 (-2.37%); split: -2.64%, +0.27%
Branches: 559559 -> 559278 (-0.05%); split: -0.06%, +0.01%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10896>
Daniel Schürmann [Wed, 19 May 2021 09:25:18 +0000 (11:25 +0200)]
aco: make clause-forming depend on the number of moved instructions
This allows more aggressive clause-forming in presence of
larger def-use distances. To compensate for the effect,
VMEM_CLAUSE_MAX_GRAB_DIST was decreased.
Totals from 5788 (3.85% of 150170) affected shaders: (GFX10.3)
VGPRs: 483960 -> 475272 (-1.80%); split: -1.82%, +0.02%
CodeSize:
59661240 ->
59669084 (+0.01%); split: -0.01%, +0.02%
MaxWaves: 70408 -> 71450 (+1.48%); split: +1.51%, -0.03%
Instrs:
11222417 ->
11224479 (+0.02%); split: -0.01%, +0.03%
Latency:
349397104 ->
349298602 (-0.03%); split: -0.03%, +0.00%
InvThroughput:
88584832 ->
87762262 (-0.93%); split: -0.93%, +0.00%
VClause: 168905 -> 177089 (+4.85%); split: -0.48%, +5.32%
SClause: 375795 -> 375767 (-0.01%); split: -0.01%, +0.01%
Copies: 840298 -> 840231 (-0.01%); split: -0.04%, +0.03%
Branches: 373265 -> 373278 (+0.00%); split: -0.00%, +0.00%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10896>
Daniel Schürmann [Tue, 18 May 2021 20:33:30 +0000 (22:33 +0200)]
aco: stop scheduling if clause-forming fails
This avoids unintended reordering of VMEM instructions.
It is also highly unlikely that we find more independent
instructions before previous clause-related instructions.
Totals from 1921 (1.28% of 150170) affected shaders: (GFX10.3)
VGPRs: 103832 -> 103736 (-0.09%); split: -0.10%, +0.01%
CodeSize: 8695560 -> 8706000 (+0.12%); split: -0.03%, +0.15%
Instrs: 1643752 -> 1646349 (+0.16%); split: -0.04%, +0.20%
Latency:
26755527 ->
26614645 (-0.53%); split: -0.67%, +0.14%
InvThroughput: 7226604 -> 7204809 (-0.30%); split: -0.39%, +0.08%
VClause: 46536 -> 46201 (-0.72%); split: -0.81%, +0.09%
SClause: 47910 -> 47769 (-0.29%); split: -0.43%, +0.14%
Copies: 94647 -> 94558 (-0.09%); split: -0.26%, +0.17%
Branches: 36843 -> 36847 (+0.01%); split: -0.00%, +0.01%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10896>
Adam Jackson [Wed, 16 Jun 2021 17:52:10 +0000 (13:52 -0400)]
glx: Don't strip off window/pixmap support from float fbconfigs
The X server doesn't get this wrong. It's not the client's job to
correct what the server says here. And if anyone ever implements HDR for
X11, you might in fact want to be able to use floats with a window.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13002>
Adam Jackson [Wed, 16 Jun 2021 17:51:12 +0000 (13:51 -0400)]
glx: Clarify a debug message
In GLX a "tag" usually means a context tag, "fbconfig attribute" is a
bit more obvious.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13002>
Adam Jackson [Mon, 10 May 2021 22:56:01 +0000 (18:56 -0400)]
glx: Move __glFreeAttributeState next to its one caller
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13002>
Adam Jackson [Fri, 28 Aug 2020 21:06:03 +0000 (17:06 -0400)]
glx: Remove some unused declarations from glxclient.h
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13002>
Daniel Schürmann [Mon, 27 Sep 2021 08:49:54 +0000 (09:49 +0100)]
aco/ra: don't copy linear VGPRs within CF in get_reg_create_vector()
Fixes:
6ed18749de52d1f24b23fad266eb3e8b46702752 ('aco: allow live-range splits of linear vgprs in top-level blocks')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13058>
Samuel Pitoiset [Fri, 24 Sep 2021 13:38:56 +0000 (15:38 +0200)]
radv: pass the pipeline key to the backend compilers
It exactly matches the shader keys now. Everything was copied from
the pipeline key to the shader keys.
There is still some work to completely remove radv_shader_variant_key.
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/13032>
Samuel Pitoiset [Fri, 24 Sep 2021 13:17:03 +0000 (15:17 +0200)]
radv: rework layout of radv_pipeline_key
To match radv_shader_variant_key.
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/13032>
Samuel Pitoiset [Fri, 24 Sep 2021 13:10:32 +0000 (15:10 +0200)]
radv: store the CS subgroup size to radv_shader_info
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/13032>
Samuel Pitoiset [Fri, 24 Sep 2021 12:52:58 +0000 (14:52 +0200)]
radv: store the topology instead of the output primitive type in the key
To match the pipeline key.
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/13032>
Tomeu Vizoso [Mon, 5 Jul 2021 07:39:01 +0000 (09:39 +0200)]
panfrost/ci: Test panvk on Mali G52
Just run some selected tests for now because we miss a lot of
functionality, which would cause so many crashes that the runs
aren't practical.
Once the core functionality is implemented, we can switch to the master
case list with skips.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13016>
Tomeu Vizoso [Mon, 5 Jul 2021 07:25:57 +0000 (09:25 +0200)]
panfrost/ci: Move CI files to src/panfrost
In preparation for testing panvk.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13016>
Boris Brezillon [Wed, 8 Sep 2021 07:56:04 +0000 (09:56 +0200)]
panvk: Implement vkCmdBlitImage()
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12961>
Boris Brezillon [Mon, 6 Sep 2021 10:38:22 +0000 (12:38 +0200)]
pan/blit: Fix 3D blittering
Fixes several problems in the pan_blit() logic:
1. We actually need the reciprocal of the depth scaling in z_scale (maybe
we should rename this field z_scale_rcp to make it clear)
2. When Z end < Z start we should remove one to the cur_layer/layer_offset
instead of doing it on the last_layer field, otherwise there's an
off-by-one error
3. The Z src offset should be adjusted to account for scaling. If we don't
do that we won't sample from the right layer when upscaling.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12961>
Boris Brezillon [Tue, 1 Jun 2021 08:20:28 +0000 (10:20 +0200)]
pan/blit: Let the caller offset the start/end coords passed to the blitter
Since we have no guarantee that start < end, we can't really tell to
which one the offset applies to. Let the caller take care of that.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12961>
Andreas Baierl [Thu, 19 Nov 2020 15:38:11 +0000 (16:38 +0100)]
lima: Fix glFrontFace handling
Bit 12 of render->aux1 is GL_CCW/GL_CW. For GL_CCW (default of glFrontFace) we have
to set that bit active.
This is not what the blob does and what the original reverse engineering documentation
says. The blob sets this value inverted and does some bogus negation of the fragment
shaders gl_FrontFacing variable instead.
Anyway, doing it this way does not cause regressions but fixes
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing and 4 piglit tests.
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7690>
Dave Airlie [Fri, 24 Sep 2021 02:26:25 +0000 (12:26 +1000)]
lavapipe: move to new shared features/properties
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12953>
Dave Airlie [Fri, 17 Sep 2021 00:30:09 +0000 (10:30 +1000)]
lavapipe: enable vulkan 1.2 support.
The remaining extensions are optional features, just turn on vk 1.2
with them reporting as off.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12953>
Dave Airlie [Wed, 22 Sep 2021 06:33:08 +0000 (16:33 +1000)]
gallivm/nir: fix subgroup invocation read.
Again if you get passed an invoc but the exec mask has the
active lane somewhere other than at 0, then if we have an
invoc we should find the active lane and extract the value
from invoc rather than using the idx.
This fixes a bunch of VK 1.2 subgroup tests once 1.2 is enabled:
dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst*
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12953>
Dave Airlie [Thu, 16 Sep 2021 06:24:29 +0000 (16:24 +1000)]
lavapipe: move to 1.2 features/properties structs.
This just adds all the wrappers in the right places hopefully
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12953>
Mike Blumenkrantz [Tue, 6 Jul 2021 19:43:54 +0000 (15:43 -0400)]
lavapipe: add support for KHR_shader_float_controls
These pass all the CTS tests, though not sure how useful they are.
[airlied: these may need some work in the future depending on app expectations]
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12953>
Mike Blumenkrantz [Mon, 27 Sep 2021 01:25:34 +0000 (21:25 -0400)]
features: mark off bindless texture for zink
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Tue, 14 Sep 2021 13:51:01 +0000 (09:51 -0400)]
zink: export PIPE_CAP_BINDLESS_TEXTURE
this is the 6th descriptor set being bound, so don't even advertise it
if 6 sets can't be bound
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Tue, 14 Sep 2021 13:42:31 +0000 (09:42 -0400)]
zink: implement bindless textures
this works by tracking 1024-member arrays of images and textures using idalloc
for indexing. each idalloc id is an index into the array that is returned as a handle,
and this handle is used to index into the array in shaders.
in the driver, VK_EXT_descriptor_indexing features are used to enable updates on the live
bindless descriptor set and leave unused members of the arrays unbound, which works as
long as no member is updated while it is in use. to avoid this, idalloc ids must cycle through
a batch once the image/texture handle is destroyed before being returned to the available pool
in shaders, bindless ops come in one of two types:
- i/o variables
- bindless instructions
for i/o, the image/texture variables have to be rewritten back to the integer
handles which represent them so that the successive shader stage utilizing them
can perform the indexing
for instructions, the src representing the image/texture has to be rewritten as a deref
into the bindless image/texture array
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Thu, 31 Dec 2020 14:21:39 +0000 (09:21 -0500)]
zink: hook up VK_EXT_descriptor_indexing
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Tue, 14 Sep 2021 13:36:48 +0000 (09:36 -0400)]
zink: handle bindless images and samplers in ntv
these are going to come through as direct variable derefs, so it's simple
to handle the functionality by reusing the same codepath to generate image
types
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Tue, 14 Sep 2021 13:33:44 +0000 (09:33 -0400)]
zink: refactor some shader image code to make it reusable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Tue, 14 Sep 2021 13:33:04 +0000 (09:33 -0400)]
zink: don't add resource to pending barrier set if no barrier will be generated
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Fri, 10 Sep 2021 20:29:22 +0000 (16:29 -0400)]
zink: split out bvci creation from object creation
make this reusable like the others
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12855>
Mike Blumenkrantz [Fri, 17 Sep 2021 15:54:09 +0000 (11:54 -0400)]
zink: force lazy descriptor set rebinds if pipeline compatibility changes
if the pipeline layout changes, it's technically illegal to not rebind the descriptor
set even if it hasn't changed
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12931>
Mike Blumenkrantz [Fri, 17 Sep 2021 18:58:05 +0000 (14:58 -0400)]
zink: remove duplicated struct member set
this should only happen in zink_descriptors_update_lazy_masked
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12931>
Marek Olšák [Mon, 20 Sep 2021 11:38:24 +0000 (07:38 -0400)]
ac/surface: correct a comment about DCC image stores
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13013>
Marek Olšák [Thu, 16 Sep 2021 00:38:43 +0000 (20:38 -0400)]
ac/surface: use DCC compatible with image stores for < 4K resolutions
We don't have to use the special DCC settings for lower resolutions.
This will cause corruption if X and an windowed app use different Mesa
versions. The fix is to restart the X server. I expect to get false bug
reports due to this.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13013>
Marek Olšák [Thu, 23 Sep 2021 11:17:58 +0000 (07:17 -0400)]
radeonsi: remove the unused cs parameter from remaining packet functions
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13015>
Marek Olšák [Thu, 23 Sep 2021 11:17:58 +0000 (07:17 -0400)]
radeonsi: remove the unused cs parameter from radeon_set_uconfig_reg
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13015>
Marek Olšák [Thu, 23 Sep 2021 11:17:58 +0000 (07:17 -0400)]
radeonsi: remove the unused cs parameter from radeon_set_sh_reg
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13015>
Marek Olšák [Thu, 23 Sep 2021 11:17:58 +0000 (07:17 -0400)]
radeonsi: remove the unused cs parameter from radeon_set_(config|context)_reg
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13015>
Marek Olšák [Thu, 23 Sep 2021 11:17:58 +0000 (07:17 -0400)]
radeonsi: remove the unused cs parameter from radeon_emit_array
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13015>
Marek Olšák [Thu, 23 Sep 2021 11:17:58 +0000 (07:17 -0400)]
radeonsi: remove the unused cs parameter from radeon_emit
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13015>
Mike Blumenkrantz [Mon, 20 Sep 2021 13:07:32 +0000 (09:07 -0400)]
docs: mark off GL_EXT_multisampled_render_to_texture for zink
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Wed, 15 Sep 2021 19:12:09 +0000 (15:12 -0400)]
zink: implement GL_EXT_multisampled_render_to_texture
this requires allocating and using a lazily-allocated msaa surface as a transient
attachment for the base render operation, resolving it
...except vulkan has no "replicate" renderpass attachment mechanism, so for now we're
just gonna allocate a transient surface and hang on to it. sorry tilers!
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Fri, 24 Sep 2021 19:53:44 +0000 (15:53 -0400)]
zink: stop setting nr_samples for shader image surface creation
that's not what this should be used for
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Fri, 17 Sep 2021 13:12:39 +0000 (09:12 -0400)]
zink: move fb attachment init to new function
this is going to get more complicated
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Fri, 17 Sep 2021 13:11:35 +0000 (09:11 -0400)]
zink: remove fbfetch layout thingy from zs renderpass init
zs doesn't do fbfetch
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Fri, 17 Sep 2021 12:31:55 +0000 (08:31 -0400)]
zink: reorder draw state updates
starting a renderpass can trigger recursion and other draws, so do all
state updates/binds after the renderpass has begun
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Thu, 16 Sep 2021 00:27:09 +0000 (20:27 -0400)]
zink: improve handling of buffer rebinds using tc info
tc rebind info can't distinguish between buffers bound multiple times
in a given bind point (e.g., for multiple vertex buffers), so ensure all
rebinds are processed and the global rebind isn't triggered if multiple rebinds
are processed for a given buffer
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Wed, 15 Sep 2021 19:10:07 +0000 (15:10 -0400)]
zink: add ZINK_BIND_TRANSIENT
this is used to create lazily allocated images for use as transient
renderpass attachments
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Wed, 15 Sep 2021 19:09:48 +0000 (15:09 -0400)]
zink: add ZINK_HEAP_DEVICE_LOCAL_LAZY
this is for lazily allocated resources
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Mike Blumenkrantz [Wed, 15 Sep 2021 15:41:58 +0000 (11:41 -0400)]
zink: repack zink_render_pass_state
saves a couple wasted bits
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12934>
Lionel Landwerlin [Fri, 24 Sep 2021 14:26:23 +0000 (17:26 +0300)]
spirv: don't fail on CapabilitySubgroupDispatch if supported
Since only Anv uses the value, I'm only enabling this on anv.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
518693c3eca195 ("spirv: Handle the SubgroupSize execution mode")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13034>