platform/upstream/mesa.git
3 years agofreedreno: Move FD_MESA_DEBUG=msgs output to mesa_logi.
Emma Anholt [Thu, 17 Jun 2021 17:54:46 +0000 (10:54 -0700)]
freedreno: Move FD_MESA_DEBUG=msgs output to mesa_logi.

It didn't work unless you had a debug build, and I regularly want to use
it on non-debug builds.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452>

3 years agofreedreno: Add perf_debug() for our software conditional rendering.
Emma Anholt [Thu, 17 Jun 2021 17:46:28 +0000 (10:46 -0700)]
freedreno: Add perf_debug() for our software conditional rendering.

We could do it in hardware, and turnip does, but it hasn't bubbled up our
priorities yet.  At least make it more discoverable when you stumble over
it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11452>

3 years agofreedreno: Defer freeing batch->key
Rob Clark [Thu, 17 Jun 2021 19:03:57 +0000 (12:03 -0700)]
freedreno: Defer freeing batch->key

We use the same key in autotune to track historical data about a given
framebuffer state, to inform the decision about using gmem vs sysmem
rendering.  Which means we need the key to stick around during the
flush, even if the batch is removed from the batch-cache before the
flush.

Fixes: 507f701d9e8 ("freedreno: Fix batch flush race condition")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11450>

3 years agospirv: Fix handling of OpBranchConditional with same THEN and ELSE
Caio Marcelo de Oliveira Filho [Thu, 25 Feb 2021 20:31:51 +0000 (12:31 -0800)]
spirv: Fix handling of OpBranchConditional with same THEN and ELSE

When an OpBranchConditional that had two equal branches was parsed, we
were treating it as a regular OpBranch.  However this doesn't work
well when there's an associated OpSelectionMerge.  We ended up
skipping marking the merge block as such, and depending on what was
inside the construct we would end up trying to process the block
twice.

Fix this by keeping the vtn_if around, but when emitting NIR identify
the two equal branch case.

Fixes: 9c2a11430e1 ("spirv: Rewrite CFG construction")
Closes: #3786, #4580
Reviewed-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9297>

3 years agopan/mdg: Fix reading a spilt register in the bundle it's written
Icecream95 [Mon, 7 Jun 2021 07:33:54 +0000 (19:33 +1200)]
pan/mdg: Fix reading a spilt register in the bundle it's written

Read directly from the instruction getting spilt. Otherwise a fill
will be inserted before the spill writing the value, so the
instruction reading the spilt value gets garbage data.

Use the bundle_id to check if the instructions are in the same bundle.

Insert a move instruction, as the spill needs the value in a LD/ST
register such as AL0, while the ALU instruction reading the value
needs it in a work register such as R0.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4857
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212>

3 years agopan/mdg: Fill from TLS before spilling non-SSA nodes
Icecream95 [Mon, 7 Jun 2021 07:30:02 +0000 (19:30 +1200)]
pan/mdg: Fill from TLS before spilling non-SSA nodes

Otherwise the data already written to the node will get overwritten.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212>

3 years agopan/mdg: Reorder some code in mir_spill_register
Icecream95 [Mon, 7 Jun 2021 07:25:42 +0000 (19:25 +1200)]
pan/mdg: Reorder some code in mir_spill_register

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212>

3 years agopan/mdg: Add a bundle ID to instructions
Icecream95 [Mon, 7 Jun 2021 07:21:41 +0000 (19:21 +1200)]
pan/mdg: Add a bundle ID to instructions

So that it is possible to check if two instructions were scheduled
into the same bundle.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11212>

3 years agofreedreno/a6xx: Skip nv_copy_image tests
Rob Clark [Wed, 16 Jun 2021 23:36:59 +0000 (16:36 -0700)]
freedreno/a6xx: Skip nv_copy_image tests

These look pretty redundant with arb_copy_image, so skip to keep CI
runtime reasonable.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agofreedreno/a6xx: Flip on copy_image
Rob Clark [Sun, 13 Jun 2021 20:38:00 +0000 (13:38 -0700)]
freedreno/a6xx: Flip on copy_image

Now that we have the rest of format "casting" sharp edges sorted, flip
on copy_image and gles32.

Unfortunately it adds back to piglit xfails (but at least that is more
than offset by my previous round of piglit fixes, and these are pretty
much all things we know had issues based on corresponding nv_copy_image
tests).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agofreedreno: Fix for multi-draw blits
Rob Clark [Wed, 16 Jun 2021 19:13:21 +0000 (12:13 -0700)]
freedreno: Fix for multi-draw blits

We have some logic to detect when u_blitter generated draws overwrite
the entire render-target, so we know we can discard anything previous.
But some blits (like multi-sample) do multiple draws.  We don't want to
discard the earlier draws from the same blit.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agofreedreno/a6xx: Handle u/snorm vs u/sint validation
Rob Clark [Tue, 15 Jun 2021 23:50:31 +0000 (16:50 -0700)]
freedreno/a6xx: Handle u/snorm vs u/sint validation

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agofreedreno/a6xx: Use UNORM for SNORM copy blits
Rob Clark [Tue, 15 Jun 2021 23:35:57 +0000 (16:35 -0700)]
freedreno/a6xx: Use UNORM for SNORM copy blits

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agofreedreno/blitter: Flush before self-blits
Rob Clark [Wed, 16 Jun 2021 17:05:45 +0000 (10:05 -0700)]
freedreno/blitter: Flush before self-blits

In paths where we are handling blits on the 3d pipe, if src==dst we need
to flush to ensure what gets sampled by the blit shader reflects the
results of any previous blits.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agofreedreno: Fix flushes with NULL batch
Rob Clark [Wed, 16 Jun 2021 17:20:05 +0000 (10:20 -0700)]
freedreno: Fix flushes with NULL batch

Sequences that pctx->set_framebuffer_state() before pctx->flush() will
see ctx->batch being NULL.. but they still need to call fd_bc_flush(ctx)
to ensure pending batches associated with the context are flushed.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11402>

3 years agointel/nir: Fix txs for null surfaces
Iván Briano [Wed, 16 Jun 2021 22:49:25 +0000 (15:49 -0700)]
intel/nir: Fix txs for null surfaces

Closes: #4860
Fixes: 05a37e24220 ("intel/nir: Set lower txs with non-zero LOD")

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11435>

3 years agofreedreno: Flush batches upon destroying the ctx.
Emma Anholt [Tue, 15 Jun 2021 20:58:50 +0000 (13:58 -0700)]
freedreno: Flush batches upon destroying the ctx.

The invalidate would take it out of the bc tracking, so you could go
allocate a new batch->idx matching this one, while this one is still in
the bc using that idx.

You can't generate any new rendering with the ctx's old batches at this
point, anyway, so just flush for simplicity.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439>

3 years agofreedreno: Remove broken back_blit optimization.
Emma Anholt [Tue, 15 Jun 2021 19:53:34 +0000 (12:53 -0700)]
freedreno: Remove broken back_blit optimization.

It wasn't checking that the transfer map would definitely overwrite all of
the data being initialized by the back blit, and if we knew that it
would then the caller would have provided PIPE_MAP_DISCARD_WHOLE_RESOURCE.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439>

3 years agofreedreno: Move the !MAP_WRITE write batch refcounting to the branch.
Emma Anholt [Tue, 15 Jun 2021 17:43:11 +0000 (10:43 -0700)]
freedreno: Move the !MAP_WRITE write batch refcounting to the branch.

For MAP_WRITE, we flush all the batches referencing the BO, so the write
batch will get flushed anyway.  No need to take an extra ref.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439>

3 years agofreedreno: Fix batch reference handling in flush_resource().
Emma Anholt [Tue, 15 Jun 2021 17:38:49 +0000 (10:38 -0700)]
freedreno: Fix batch reference handling in flush_resource().

We take references under the lock, but then accessed the lock-requiring
batch_cache structure without holding the lock.  The batches wouldn't get
freed and removed from their slots until the last ref goes away so it was
safe (other than the assert at the end), but writing the simple code is
shorter and requires fewer assumptions.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11439>

3 years agov3dv: implement VK_EXT_index_type_uint8
Iago Toral Quiroga [Thu, 17 Jun 2021 10:12:46 +0000 (12:12 +0200)]
v3dv: implement VK_EXT_index_type_uint8

Relevant CTS tests:
dEQP-VK.pipeline.input_assembly.*.index_type_uint8.*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11444>

3 years agov3dv: enable ASTC formats
Charlie [Fri, 11 Jun 2021 19:02:10 +0000 (20:02 +0100)]
v3dv: enable ASTC formats

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336>

3 years agov3dv: add ASTC formats to get_compatible_tlb_format
Charlie [Fri, 11 Jun 2021 19:00:51 +0000 (20:00 +0100)]
v3dv: add ASTC formats to get_compatible_tlb_format

CTS doesn't seem to hit this, but they're all 128bit formats so this
should be right

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336>

3 years agov3dv: divide by block size in copy_image_blit
Charlie [Fri, 11 Jun 2021 18:58:28 +0000 (19:58 +0100)]
v3dv: divide by block size in copy_image_blit

This handles compressed formats with non-4x4 blocks, like ASTC.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336>

3 years agov3dv: add the unswizzled RGBA4444 format
Charlie [Fri, 11 Jun 2021 18:54:50 +0000 (19:54 +0100)]
v3dv: add the unswizzled RGBA4444 format

If we're supporting the R/B swapped one we might as well support the one that
isn't.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11336>

3 years agor600/sfn: Clean up some ALU lowering and move code
Gert Wollny [Sun, 13 Jun 2021 18:20:08 +0000 (20:20 +0200)]
r600/sfn: Clean up some ALU lowering and move code

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348>

3 years agor600/sfn: Don't read return values of atomic ops that are not used
Gert Wollny [Sun, 13 Jun 2021 12:36:13 +0000 (14:36 +0200)]
r600/sfn: Don't read return values of atomic ops that are not used

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348>

3 years agor600/sfn: Drop method for emit_atomic_add, it is handled in generic code
Gert Wollny [Sun, 13 Jun 2021 12:35:02 +0000 (14:35 +0200)]
r600/sfn: Drop method for emit_atomic_add, it is handled in generic code

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348>

3 years agor600/sfn: don't read back unused image atomic result values
Gert Wollny [Sun, 13 Jun 2021 12:15:31 +0000 (14:15 +0200)]
r600/sfn: don't read back unused image atomic result values

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348>

3 years agor600/sfn: don't designates initializers, since they are c++20
Gert Wollny [Sun, 13 Jun 2021 12:10:19 +0000 (14:10 +0200)]
r600/sfn: don't designates initializers, since they are c++20

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11348>

3 years agoiris: Avoid abort() if kernel can't allocate memory
Kai-Heng Feng [Fri, 4 Jun 2021 04:13:04 +0000 (12:13 +0800)]
iris: Avoid abort() if kernel can't allocate memory

When the system doesn't have enough memory, GNOME Shell may be crashed
by iris:
gnome-shell[1161]: iris: Failed to submit batchbuffer: Cannot allocate memory
gnome-shell[1161]: GNOME Shell crashed with signal 6

So don't abort() when kernel can't allocate memory to avoid crashing the
entire desktop.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11178>

3 years agov3dv: expose VK_KHR_shader_non_semantic_info
Iago Toral Quiroga [Thu, 17 Jun 2021 07:18:23 +0000 (09:18 +0200)]
v3dv: expose VK_KHR_shader_non_semantic_info

This is entirely implemented in the SPIR-V frontend.

Relevant CTS tests:
dEQP-VK.spirv_assembly.instruction.compute.non_semantic_info.*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11440>

3 years agodisk_cache: use UTIL_QUEUE_INIT_SCALE_THREADS
Pierre-Eric Pelloux-Prayer [Wed, 9 Jun 2021 11:52:36 +0000 (13:52 +0200)]
disk_cache: use UTIL_QUEUE_INIT_SCALE_THREADS

Instead of spawning 4 threads when the cache is created,
spawn 1 and let u_queue grow the number of threads if
needed.

I wrote this patch because when running piglit's quick_shader
profile I had lots of samples in disk cache threads - mostly
in native_queued_spin_lock_slowpath kernel function.

Since these tests shouldn't really stress the cache, I assumed
it was caused only by thread creations.

After writing the patch and redoing the measurement, I got an
improvement but I still more hits in the same function for
shader_runner:$disk0 thread so something was wrong.

After digging more, I found out that my shader cache index was
corrupted: the on-disk size was 29MB but the index reported it
was way more than 1GB. So each disk cache thread was spending
a lot of time trying to evict files. Given that my cache had
a really low count of files, the LRU method based on randomly
generating subfolder names failed, so evicting was very slow.

Now that my cache index is fixed, the disk cache threads are
mostly idle but I still think it makes sense to grow the
number of threads instead of spawning 4 at the program start.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296>

3 years agoutil/u_queue: add UTIL_QUEUE_INIT_SCALE_THREADS flag
Pierre-Eric Pelloux-Prayer [Wed, 9 Jun 2021 11:49:23 +0000 (13:49 +0200)]
util/u_queue: add UTIL_QUEUE_INIT_SCALE_THREADS flag

This flag allow to create a single thread initially, but set
max_thread to the request thread count.

If the queue is full and num_threads is lower than max_threads,
we spawn a new thread to help process the queue faster.

This avoid creating N threads at queue creation time.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296>

3 years agoutil/u_queue: move function definition up
Pierre-Eric Pelloux-Prayer [Wed, 9 Jun 2021 11:48:25 +0000 (13:48 +0200)]
util/u_queue: move function definition up

Will be used by the next commit.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296>

3 years agoradeonsi: delay sample_pos_buffer creation until first use
Pierre-Eric Pelloux-Prayer [Wed, 9 Jun 2021 08:32:41 +0000 (10:32 +0200)]
radeonsi: delay sample_pos_buffer creation until first use

And use pipe_buffer_create_with_data instead of doing it
manually.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296>

3 years agovbo: delay vbo_exec_vtx_map call
Pierre-Eric Pelloux-Prayer [Wed, 9 Jun 2021 08:26:14 +0000 (10:26 +0200)]
vbo: delay vbo_exec_vtx_map call

Instead of doing vbo_exec_vtx_map during initialization,
defer it until the first actual user.

v2: move init to vbo_exec_wrap_upgrade_vertex (Emma Anholt)

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11296>

3 years agonvc0/ir: Initialize CodeEmitterNVC0 member progType in constructor.
Vinson Lee [Sun, 13 Jun 2021 23:57:32 +0000 (16:57 -0700)]
nvc0/ir: Initialize CodeEmitterNVC0 member progType in constructor.

Fix defect reported by Coverity Scan.

Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member progType is not initialized
in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11350>

3 years agomesa: execute glFlush asynchronously if no image has been imported/exported
Marek Olšák [Fri, 21 May 2021 21:52:27 +0000 (17:52 -0400)]
mesa: execute glFlush asynchronously if no image has been imported/exported

This improves viewperf performance and it shouldn't break synchronization
with external clients when it's indirectly implied by glFlush.

This should not break the cases described in:
    https://gitlab.freedesktop.org/mesa/mesa/-/issues/4903

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>

3 years agomesa: move _mesa_notifySwapBuffers into the x11 swrast driver
Marek Olšák [Mon, 14 Jun 2021 20:56:57 +0000 (16:56 -0400)]
mesa: move _mesa_notifySwapBuffers into the x11 swrast driver

It has no other use and no relevance to DRI drivers despite the name.

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>

3 years agomesa: add gallium flush_flags param into ctx->Driver.Flush
Marek Olšák [Sat, 12 Jun 2021 16:20:06 +0000 (12:20 -0400)]
mesa: add gallium flush_flags param into ctx->Driver.Flush

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>

3 years agost/mesa: move the st_flush_bitmap_cache call into st_flush
Marek Olšák [Sat, 12 Jun 2021 16:28:41 +0000 (12:28 -0400)]
st/mesa: move the st_flush_bitmap_cache call into st_flush

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>

3 years agost/mesa: fix an incorrect comment in st_context_flush
Marek Olšák [Sat, 12 Jun 2021 16:27:21 +0000 (12:27 -0400)]
st/mesa: fix an incorrect comment in st_context_flush

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>

3 years agoglthread: change when glFlush flushes asynchronously
Marek Olšák [Sat, 12 Jun 2021 16:31:28 +0000 (12:31 -0400)]
glthread: change when glFlush flushes asynchronously

This fixes the flushing with external textures.

We don't know if we need to flush synchronously with multiple contexts,
so I removed that.

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>

3 years agoanv: Fix dynamic primitive topology for tess on Gfx7.x too
Kenneth Graunke [Wed, 16 Jun 2021 22:58:28 +0000 (15:58 -0700)]
anv: Fix dynamic primitive topology for tess on Gfx7.x too

Commit 24342e499bc58348b257716f629dccca3c1b0833 changed how primitive
topology is handled on Gfx8+ but missed updating the Gfx7.x code.

As a result, tests which previously used topologies like PATCHLIST_3
instead started using bogus ones like LINESTRIP_ADJ.  This caused a
GPU hangs in a bunch of Vulkan conformance tests involving tessellation.

This fixes those hangs.

Fixes: 24342e499bc ("anv: fix dynamic primitive topology for tess")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11434>

3 years agoAdd default driver selections for RISC-V
Zhaofeng Li [Sun, 13 Jun 2021 03:37:16 +0000 (20:37 -0700)]
Add default driver selections for RISC-V

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11346>

3 years agozink: always defer image descriptor barriers
Mike Blumenkrantz [Wed, 7 Apr 2021 14:55:49 +0000 (10:55 -0400)]
zink: always defer image descriptor barriers

this is simpler and guaranteed to be accurate

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11393>

3 years agozink: use fake buffer barriers for descriptors
Mike Blumenkrantz [Wed, 7 Apr 2021 14:49:39 +0000 (10:49 -0400)]
zink: use fake buffer barriers for descriptors

GL requires explicit glMemoryBarrier calls for shader synchronization
and only calls that map/copy buffers get implicit sync, so we don't actually
need barriers for any of these cases, only the state needs to be updated

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11393>

3 years agozink: check actual mem props to determine if resource object is coherent
Mike Blumenkrantz [Thu, 6 May 2021 16:55:07 +0000 (12:55 -0400)]
zink: check actual mem props to determine if resource object is coherent

this was correct for what it has been used for until now, but it will no
longer be correct going forward

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397>

3 years agozink: key alloc cache on heap index, not heap flags
Mike Blumenkrantz [Thu, 6 May 2021 14:59:50 +0000 (10:59 -0400)]
zink: key alloc cache on heap index, not heap flags

this is a bit more sane

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397>

3 years agozink: avoid caching visible vram allocations
Mike Blumenkrantz [Thu, 6 May 2021 13:52:08 +0000 (09:52 -0400)]
zink: avoid caching visible vram allocations

the visible vram heap is potentially going to be limited in size, so avoid
caching these allocations since that locks them to a given allocation size

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397>

3 years agozink: change a bunch of sparse buffer resource checks to host-visible checks
Mike Blumenkrantz [Thu, 6 May 2021 13:51:02 +0000 (09:51 -0400)]
zink: change a bunch of sparse buffer resource checks to host-visible checks

(sparse buffer) is a subset of !host-visible, and !host-visible is actually the
more correct check to be using

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397>

3 years agozink: collapse host_visible and non-coherent alignment alloc cases
Mike Blumenkrantz [Thu, 6 May 2021 13:48:55 +0000 (09:48 -0400)]
zink: collapse host_visible and non-coherent alignment alloc cases

* buffers can use normal mem prop checking to determine host_visible setting
* sparse buffers are never coherent, so this case can be dropped from the conditional

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11397>

3 years agocompiler/glsl: Use mutex lock while freeing up mem_ctx
Martin Krastev [Tue, 15 Jun 2021 19:18:31 +0000 (12:18 -0700)]
compiler/glsl: Use mutex lock while freeing up mem_ctx

builtin_builder::~builtin_builder() and builtin_builder::release()
are running into race condition. This leads lightsmark to crash at
the end because both calls ralloc_free which mutates the arguments state

This patch fixes lightsmark2008 crash

Fixes: e4da8b9c331cc3a ("mesa/compiler: rework tear down of builtin/types")

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11385>

3 years agozink: mark some functions inline
Mike Blumenkrantz [Thu, 15 Apr 2021 12:59:16 +0000 (08:59 -0400)]
zink: mark some functions inline

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11429>

3 years agoir3/ra: Fix array parallelcopy confusion
Connor Abbott [Wed, 16 Jun 2021 13:55:30 +0000 (15:55 +0200)]
ir3/ra: Fix array parallelcopy confusion

With array registers, there are two num's we care about:

1. The base num that the whole array starts at (->array.base)
2. The num that the instruction uses, plus possibly an indirect offset
   (->num or ->array.offset)

For parallel copies we always copy the whole array, so (2) is irrelevant
here. For phis and parallel copies inserted for phis, we used
assign_reg() which assigned ->array.base, but we forgot about this when
constructing our own parallel copies for live range splitting, just
setting ->num instead. The parallel copy lowering was also inconsistent
here, using ra_reg_get_num() (which looks at ->array.base for arrays)
for sources but looking at ->num directly for destinations. This makes
everything use ->array.base consistently.

While we're here, make sure to remove IR3_REG_SSA from liveout copies to
make sure printing works correctly.

Fixes: 0ffcb19 ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11422>

3 years agoir3: Improve printing of array parallelcopies/phis
Connor Abbott [Wed, 16 Jun 2021 13:50:56 +0000 (15:50 +0200)]
ir3: Improve printing of array parallelcopies/phis

Normally something with IR3_REG_ARRAY doesn't have a register assigned,
but we keep IR3_REG_ARRAY for parallel copies after RA because we need
to know the appropriate size. We want to see the register assigned for
these when printing the RA result before parallel copies are lowered.
The register is in ->array.base in this case, so initialize it to
INVALID_REG and print ->array.base if it's been assigned to something,
similar to ->num in the normal case.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11422>

3 years agoshader_enums: change VERT_BIT back to the 32-bit shift
Marek Olšák [Tue, 25 May 2021 20:27:30 +0000 (16:27 -0400)]
shader_enums: change VERT_BIT back to the 32-bit shift

This reverts 0e2566a8. The warning is fixed differently.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10993>

3 years agogallium/pb: change alignment to 32 bits
Marek Olšák [Tue, 25 May 2021 20:28:47 +0000 (16:28 -0400)]
gallium/pb: change alignment to 32 bits

This partially reverts 4a3f0444. The warning is fixed differently.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10993>

3 years agoradeonsi: remove -Wstrict-overflow=0 since it doesn't seem to be needed
Marek Olšák [Wed, 16 Jun 2021 17:16:23 +0000 (13:16 -0400)]
radeonsi: remove -Wstrict-overflow=0 since it doesn't seem to be needed

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384>

3 years agoradeonsi: remove the chip_class dimension from the draw_vbo array
Marek Olšák [Mon, 14 Jun 2021 01:13:39 +0000 (21:13 -0400)]
radeonsi: remove the chip_class dimension from the draw_vbo array

We don't use/initialize draw_vbo callbacks for other generations anymore.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384>

3 years agoradeonsi: compile si_state_draw.cpp for each gfx generation separately
Marek Olšák [Mon, 14 Jun 2021 01:12:22 +0000 (21:12 -0400)]
radeonsi: compile si_state_draw.cpp for each gfx generation separately

It makes compilating faster.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384>

3 years agoradeonsi: move a few functions from si_state_draw.cpp into si_gfx_cs.c
Marek Olšák [Mon, 14 Jun 2021 01:04:42 +0000 (21:04 -0400)]
radeonsi: move a few functions from si_state_draw.cpp into si_gfx_cs.c

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11384>

3 years agovenus: remove workarounds for multi-planar format interop
Yiwei Zhang [Wed, 9 Jun 2021 23:05:50 +0000 (23:05 +0000)]
venus: remove workarounds for multi-planar format interop

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11282>

3 years agoanv: fix build errors after commit 8b7ff78
Yiwei Zhang [Tue, 15 Jun 2021 05:39:39 +0000 (05:39 +0000)]
anv: fix build errors after commit 8b7ff78

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11373>

3 years agoradv: fix build errors after commit 8b7ff784
Yiwei Zhang [Tue, 15 Jun 2021 05:34:15 +0000 (05:34 +0000)]
radv: fix build errors after commit 8b7ff784

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11373>

3 years agozink: ci updates
Mike Blumenkrantz [Wed, 16 Jun 2021 17:54:23 +0000 (13:54 -0400)]
zink: ci updates

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391>

3 years agozink: support more RGBX formats
Mike Blumenkrantz [Fri, 2 Apr 2021 15:59:20 +0000 (11:59 -0400)]
zink: support more RGBX formats

the base formats are supported, so these should fall into place naturally

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391>

3 years agozink: also nope out of any dst alpha blends for rgbx formats
Mike Blumenkrantz [Tue, 13 Apr 2021 18:56:08 +0000 (14:56 -0400)]
zink: also nope out of any dst alpha blends for rgbx formats

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391>

3 years agozink: smash dstAlphaBlendFactor to ZERO for RGBX attachments
Mike Blumenkrantz [Wed, 7 Apr 2021 15:00:25 +0000 (11:00 -0400)]
zink: smash dstAlphaBlendFactor to ZERO for RGBX attachments

this is a no-op

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391>

3 years agozink: add a more direct check for rgbx formats in create_sampler_view hook
Mike Blumenkrantz [Fri, 2 Apr 2021 17:34:26 +0000 (13:34 -0400)]
zink: add a more direct check for rgbx formats in create_sampler_view hook

really the point of this is to clamp void channels for any permutation of rgbx
where all channels are the same (e.g., both rgbx8 and rgbx16), so the previous
helper isn't inclusive enough

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11391>

3 years agoutil/queue: add a global data pointer for the queue object
Mike Blumenkrantz [Wed, 9 Jun 2021 22:14:29 +0000 (18:14 -0400)]
util/queue: add a global data pointer for the queue object

this better enables object-specific (e.g., context) queues where the owner
of the queue will always be needed and various pointers will be passed in
for tasks

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11312>

3 years agoradeonsi: set desc[3] of all buffer descriptors at context creation
Marek Olšák [Sun, 13 Jun 2021 18:11:27 +0000 (14:11 -0400)]
radeonsi: set desc[3] of all buffer descriptors at context creation

instead of at bind time. When we unbind, we shouldn't memset the last
element.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340>

3 years agoradeonsi: remove no-op unref in si_set_constant_buffer
Marek Olšák [Sun, 13 Jun 2021 17:58:16 +0000 (13:58 -0400)]
radeonsi: remove no-op unref in si_set_constant_buffer

buffer is already NULL here

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340>

3 years agoradeonsi: restructure si_set_sampler_views for faster unbinding trailing slots
Marek Olšák [Sun, 6 Jun 2021 12:34:56 +0000 (08:34 -0400)]
radeonsi: restructure si_set_sampler_views for faster unbinding trailing slots

si_set_sampler_view updates only one slot. This rewrites it to update
multiple slots.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340>

3 years agoradeonsi: don't clear register fields in si_set_mutable_tex_desc_fields
Marek Olšák [Sun, 6 Jun 2021 11:35:00 +0000 (07:35 -0400)]
radeonsi: don't clear register fields in si_set_mutable_tex_desc_fields

They are always initialized to 0.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340>

3 years agoradeonsi: use the restrict keyword to set sampler view descriptors faster
Marek Olšák [Sun, 6 Jun 2021 11:17:53 +0000 (07:17 -0400)]
radeonsi: use the restrict keyword to set sampler view descriptors faster

All places must set restrict for the same pointer.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340>

3 years agoradeonsi: check is_buffer once instead of 4 times in si_set_sampler_view_desc
Marek Olšák [Sun, 6 Jun 2021 10:45:48 +0000 (06:45 -0400)]
radeonsi: check is_buffer once instead of 4 times in si_set_sampler_view_desc

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11340>

3 years agozink: do not check buffer-format for usage-bits
Erik Faye-Lund [Wed, 16 Jun 2021 09:29:45 +0000 (02:29 -0700)]
zink: do not check buffer-format for usage-bits

Buffers are created without a format in Vulkan, and we always pass in
R8_UNORM for them in Gallium. It's the view-formats we should have
checked, if anything.

But that's orthogonal to this. We shoudn't keep checking R8_UNORM
capabilities for buffers, all it's going to do is trigger asserts.

Fixes: 00dc0036b ("zink: flatten out buffer creation usage flags codepath")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11416>

3 years agozink: drop repeated usage-bit
Erik Faye-Lund [Wed, 16 Jun 2021 08:51:07 +0000 (01:51 -0700)]
zink: drop repeated usage-bit

We already set this bit unconditionally right before, no point in
repeating it.

Fixes: 00dc0036b ("zink: flatten out buffer creation usage flags codepath")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11416>

3 years agozink: remove unused function
Erik Faye-Lund [Wed, 16 Jun 2021 13:13:28 +0000 (15:13 +0200)]
zink: remove unused function

There's no call-sites to this function, so let's drop it.

Fixes: e4e20556d62 ("zink: switch to memory barriers instead of actual buffer barriers")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11421>

3 years agozink: fixup signedness of subtraction
Erik Faye-Lund [Wed, 16 Jun 2021 13:09:09 +0000 (15:09 +0200)]
zink: fixup signedness of subtraction

I'm not even going to pretend that I grok this code, but since we take
the abs value, it's pretty obvious that we meant to use a signed value
here. So let's cast the two operands to int before we subtract.

This was noticed by the following clang warning:

---8<---
../src/gallium/drivers/zink/zink_context.c:3284:14: warning: taking the
absolute value of unsigned type 'unsigned int' has no effect
[-Wabsolute-value]
      last = abs(reads - writes) > UINT32_MAX / 2 ? MIN2(reads, writes) : MAX2(reads, writes);
             ^
---8<---

Fixes: 0c1fe392e8d ("zink: implement a tc is_resource_busy hook")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11421>

3 years agozink: move queue init to screen creation
Mike Blumenkrantz [Thu, 6 May 2021 20:41:36 +0000 (16:41 -0400)]
zink: move queue init to screen creation

this is a race condition

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11398>

3 years agozink: set subdata hook as PIPE_MAP_ONCE
Mike Blumenkrantz [Fri, 7 May 2021 23:08:30 +0000 (19:08 -0400)]
zink: set subdata hook as PIPE_MAP_ONCE

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11401>

3 years agozink: update pipe_screen::num_contexts
Mike Blumenkrantz [Thu, 22 Apr 2021 18:52:58 +0000 (14:52 -0400)]
zink: update pipe_screen::num_contexts

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11394>

3 years agoanv: fix dynamic primitive topology for tess
Mike Blumenkrantz [Fri, 11 Jun 2021 21:47:53 +0000 (17:47 -0400)]
anv: fix dynamic primitive topology for tess

this needs to use the pre-converted topology using tess state patch control points

Fixes: f6fa4a80000 ("anv: add support for dynamic primitive topology change")

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11332>

3 years agozink: correct type of flags to flush
Erik Faye-Lund [Wed, 16 Jun 2021 08:49:25 +0000 (01:49 -0700)]
zink: correct type of flags to flush

This type is unsigned in the prototype, so this produces a warning on
MSVC.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: use alloca instead of hard-to-size vlas
Erik Faye-Lund [Wed, 16 Jun 2021 08:15:49 +0000 (01:15 -0700)]
zink: use alloca instead of hard-to-size vlas

These variable-length arrays are hard to size statically, and VLAs
aren't supported by MSVC. So let's use alloca instead.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: use max-descriptor define
Erik Faye-Lund [Tue, 15 Jun 2021 15:27:43 +0000 (08:27 -0700)]
zink: use max-descriptor define

This avoids compile errors on MSVC due to VLAs.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: introduce a define for max descriptors per type
Erik Faye-Lund [Tue, 15 Jun 2021 15:25:34 +0000 (08:25 -0700)]
zink: introduce a define for max descriptors per type

We know what this max is in the compiler, let's move that out into
zink_descriptors.h, so we can reuse the constant.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: fix more initializer styles
Erik Faye-Lund [Tue, 15 Jun 2021 15:31:21 +0000 (08:31 -0700)]
zink: fix more initializer styles

Empty initializer lists are a GCC extension, let's use the syntax that
compilers like MSVC also supports.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: drop some more vla usage
Erik Faye-Lund [Tue, 15 Jun 2021 15:15:42 +0000 (08:15 -0700)]
zink: drop some more vla usage

MSVC doesn't like them, so let's get rid of more of them.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: add missing compiler-dependency
Erik Faye-Lund [Tue, 15 Jun 2021 15:12:38 +0000 (08:12 -0700)]
zink: add missing compiler-dependency

Without this, we depend on something else previously in the build to
have built these.

Fixes: ed2fb809 ("zink: introduce vk_dispatch_table")
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11380>

3 years agozink: drop paranoid code
Erik Faye-Lund [Wed, 16 Jun 2021 09:36:05 +0000 (02:36 -0700)]
zink: drop paranoid code

If we ever get here, res->dt is non-NULL. No need to assert, and no need
to check twice.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11414>

3 years agozink: do not unmap dt-buffers twice
Erik Faye-Lund [Wed, 16 Jun 2021 09:34:18 +0000 (02:34 -0700)]
zink: do not unmap dt-buffers twice

Seems I missed that we already did an unconditional unmap here, and
forgot to remove it. Whoops.

Fixes: 5159f406d ("zink: use gallium api to copy to display-target")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11414>

3 years agozink: split stencil ref changes to separate dirty flag
Mike Blumenkrantz [Thu, 6 May 2021 20:09:10 +0000 (16:09 -0400)]
zink: split stencil ref changes to separate dirty flag

the values here are for the cmdbuf, not the pipeline, so they should
always be updated regardless of what the current dsa state uses

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11396>

3 years agozink: add update flag for dsa state change
Mike Blumenkrantz [Thu, 6 May 2021 19:59:14 +0000 (15:59 -0400)]
zink: add update flag for dsa state change

reduce overhead by avoiding unnecessary updates

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11396>

3 years agozink: add update flag for rasterizer state change
Mike Blumenkrantz [Thu, 6 May 2021 19:58:37 +0000 (15:58 -0400)]
zink: add update flag for rasterizer state change

this can be used to avoid updating related dynamic states too frequently

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11396>

3 years agozink: handle nir_op_pack_64_2x32
Mike Blumenkrantz [Mon, 5 Apr 2021 16:00:04 +0000 (12:00 -0400)]
zink: handle nir_op_pack_64_2x32

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11392>

3 years agov3dv: remove sRGB blending workaround
Charlie [Mon, 14 Jun 2021 21:54:26 +0000 (22:54 +0100)]
v3dv: remove sRGB blending workaround

This reverts commits 4c15131b1d36874b643aed8407933ccd8675841d and
1cf36797bf9d63b33c405d85ce720dcd5e75a47c.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11377>