Ruijing Dong
515112eabd
radeonsi/vcn: prepare for unified queue in vcn4
...
- apply unified queue ib headers to vcn4
- re-use encoding queue as unified queue
- define unified queue functions and structures
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Reviewed-by: Mihai Preda <mhpreda@gmail.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16911 >
2022-06-16 03:30:47 +00:00
Mark Janes
7b74747854
iris: provide a callback to INTEL_MEASURE to clean up snapshots
...
Snapshots are processed asynchronously by INTEL_MEASURE, but snapshot
memory is allocated and associated with an iris batch. Provide a
callback that will free snapshot memory after a batch is fully
processed.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16571 >
2022-06-16 02:58:08 +00:00
Mark Janes
a1a5f6430a
intel: provide a callback to clean up after intel_measure_gather
...
The caller may have passed ownership of intel_measure_batch structures
to intel_measure until they are ready to be gathered. The caller
needs a notification when rendering is complete and snapshots have
been processed, so it can free the resources that measure the batch.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16571 >
2022-06-16 02:58:08 +00:00
Mark Janes
34a130fedf
anv: fix performance bug in INTEL_MEASURE
...
Re-allocating the buffer object for snapshots carries a heavy penalty
at run-time. When resetting a command buffer, the buffer object that
is allocated for snapshots may be re-used directly on subsequent
renders.
Stale snapshot data will persist in the buffer object. To verify that
rendering is complete, zero the final timestamp value and check that
it has been written before gathering data.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16571 >
2022-06-16 02:58:08 +00:00
Mark Janes
c4c096e66e
intel: relax assertion in INTEL_MEASURE
...
It is possible that a secondary command buffer was submitted with no
renders in it. For that case, no timestamp will be collected. Only
verify that timestamps if the index is nonzero.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16571 >
2022-06-16 02:58:08 +00:00
Mark Janes
3c53c6b247
intel: parse intel_measure environment without side effects
...
If an application links agaist both iris and anv, they will clash when
parsing the INTEL_MEASURE environment variable.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16571 >
2022-06-16 02:58:08 +00:00
Jan Beich
78523eea2f
vulkan/wsi: treat EBADF as missing DMA_BUF_IOCTL_{EXPORT,IMPORT}_SYNC_FILE
...
FreeBSD supports DMA-BUF but not DMA_BUF_IOCTL_SYNC and similar yet.
As it returns EBADF instead of ENOTTY all consumers fail due to
VK_ERROR_OUT_OF_HOST_MEMORY.
Fixes: 30b57f10b3 ("vulkan/wsi: Signal semaphores and fences from the dma-buf")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17070 >
2022-06-16 02:33:23 +00:00
Mike Blumenkrantz
1783a261f6
zink: only enable vtn debugging if validation is active
...
this is otherwise incredibly cumbersome and eats up minutes in ci
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17069 >
2022-06-16 02:18:53 +00:00
Mike Blumenkrantz
1bd94b07f6
zink: always bind on the sparse queue
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066 >
2022-06-16 02:01:53 +00:00
Mike Blumenkrantz
0f9bc1ebe3
zink: detect sparse-only binding queue
...
still prefer binding on the gfx queue when available, but store a separate
sparse binding queue if necessary
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066 >
2022-06-16 02:01:53 +00:00
Mike Blumenkrantz
d1456a6b0a
zink: add semaphore handling for sparse binds
...
this is a little tricky since it's possible to need a truly unreasonable
number of sparse binds in one go, so the current implementation will
daisy-chain through the sparse submits such that:
* sparse bind A creates signal semaphore X
* sparse bind B waits on X, creates signal semaphore Y
* sparse bind C waits on Y, creates signal semaphore Z
thus, any number of sparse binds will produce exactly one semaphore
that can be waited on by the following submit
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066 >
2022-06-16 02:01:53 +00:00
Mike Blumenkrantz
285a5144cc
zink: add batch api for adding a wait semaphore
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066 >
2022-06-16 02:01:53 +00:00
Mike Blumenkrantz
48b56d2efd
zink: use a dynarray for semaphore wait flags
...
ensure that any number of semaphore waits is handled as expected
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066 >
2022-06-16 02:01:53 +00:00
Mike Blumenkrantz
f5ac058812
zink: remove thread_queue
...
I had originally intended to hook this up properly with synchronization et al,
but I didn't do it, and now it's seeming less smart anyway, so let's
remove the footgun
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17066 >
2022-06-16 02:01:53 +00:00
Connor Abbott
cba6da2b21
tu: Save/restore *_BIN_CONTROL in 3d GMEM store path
...
These are normally only set once because it's constant across the entire
renderpass, but they're trashed by the 3d store path because it needs to
store to CCU instead of GMEM. Therefore we need to save/restore them. Do
it in a way compatible with #5181 .
Fixes: b157a5d ("tu: Implement non-aligned multisample GMEM STORE_OP_STORE")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17058 >
2022-06-16 01:10:24 +00:00
Connor Abbott
a9d7b47613
tu: Add missing WFI to the 3d GMEM store path
...
Similar to the 2d path.
Fixes: b157a5d ("tu: Implement non-aligned multisample GMEM STORE_OP_STORE")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17058 >
2022-06-16 01:10:24 +00:00
Connor Abbott
705c0d0373
tu: Fix 3d GMEM store swizzle in texture descriptor
...
Even though image views for attachments must use the identity swizzle,
there are cases where we have to add in our own swizzle, in particular
for D24S8 when the view is depth-only/stencil-only. Therefore we have to
reset it to the identity, similar to what we do with input attachments.
Fixes: b157a5d ("tu: Implement non-aligned multisample GMEM STORE_OP_STORE")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17058 >
2022-06-16 01:10:24 +00:00
Rhys Perry
33e7ba2e3e
aco: update SMEM offset workaround for LLVM 15
...
This isn't needed since LLVM 15's b0ccf38b018.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6663
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17036 >
2022-06-16 00:47:51 +00:00
Mike Blumenkrantz
d301883aba
zink: use uint64_t for batch_id
...
this maps directly to the vulkan api and allows removal of timeline
wrapping code
the consequence of this is a ~0.26% reduction in drawoverhead performance
on base cases (n=1000), but the simplification and deletions seem worth it
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17045 >
2022-06-16 00:30:45 +00:00
Tiago Koji Castro Shibata
4622e99e10
d3d12: fallback to integrated adapter instead of arbitrary one
...
Using the integrated adapter when none is specified uses less power by
default and doesn't break scenarios on Optimus systems (for example, on
Surface Books, detaching the screen gets prohibited because the GPU on
the performance base is in use)
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17005 >
2022-06-16 00:19:54 +00:00
Mike Blumenkrantz
3b867ae69b
zink: anv ci updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17061 >
2022-06-16 00:05:52 +00:00
Mike Blumenkrantz
bd859e1f96
zink: clamp renderpass layers better
...
this needs to be the minimum layer, not the maximum
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17061 >
2022-06-16 00:05:52 +00:00
Mike Blumenkrantz
7edecbf4c2
zink: clamp dynamic fb layers better
...
this needs to be the minimum layer, not the maximum
Fixes: c81cd989c8 ("zink: use dynamic rendering (most of the time)")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17061 >
2022-06-16 00:05:52 +00:00
Mike Blumenkrantz
f74df6205d
zink: add a function for getting the minimum framebuffer layers
...
this clamps the layer count to the smallest number of layers rather
than the largest
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17061 >
2022-06-16 00:05:52 +00:00
Emma Anholt
979f213110
ci/iris: Disable blender-demo-cube_diorama on APL.
...
It has timed out on 3 jobs today.
Fixes: 96f0944a69 ("ci/panfrost: add Blender, Warzone2100, Freedoom and Unvanquished traces")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17041 >
2022-06-15 23:28:23 +00:00
Connor Abbott
6dfabab08f
freedreno/a6xx: Support more 3-component formats
...
These should be trivially enableable. This gets us some test coverage on
turnip because there are no tests of RGB32 texel buffers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16980 >
2022-06-15 22:48:38 +00:00
Connor Abbott
2e63c570dd
tu: Enable uniform texture buffers with NPOT formats
...
This is enough for zink to expose ARB_texture_buffer_object_rgb32 and
therefore GL 4.0. We could enable sampled images with a few more
workarounds, but the blob doesn't bother and there isn't any need at the
moment.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16980 >
2022-06-15 22:48:38 +00:00
Boris Brezillon
db2d264989
dzn: Enable support for geometry shaders
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17039 >
2022-06-15 22:04:01 +00:00
Boris Brezillon
e9066ff2be
dzn: Disable rasterization if the last geometry stage doesn't write the position
...
If we don't do that, and we get passed a dummy geometry shader (one
that has no EmitVertex() calls) we get a DXIL validation error.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17039 >
2022-06-15 22:04:00 +00:00
Boris Brezillon
e11035bf6d
microsoft/compiler: Support gl_Layer
...
Maps pretty nicely to SV_RenderTargetArrayIndex, so nothing complicated
here.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17039 >
2022-06-15 22:04:00 +00:00
Boris Brezillon
9c45ee3f86
microsoft/compiler: Fix Layer type
...
DXIL wants a uint, but we get passed an int.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17039 >
2022-06-15 22:04:00 +00:00
Boris Brezillon
afb64e10c1
microsoft/compiler: Move d3d12_fix_io_uint_type() to dxil_nir.c
...
We currently have two implementations of the same logic. Let's pick
the d3d12 one, move it to dxil_nir.c and let nir_to_dxil() call it
when appropriate.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17039 >
2022-06-15 22:04:00 +00:00
Boris Brezillon
c9b2c79d16
d3d12: Keep access masks up-to-date when removing vars in d3d12_disable_multisampling()
...
Fixes: e5cf19fced ("d3d12: Modify shaders when MSAA is disabled")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17039 >
2022-06-15 22:04:00 +00:00
Mike Lothian
e1accb1c4c
util: Fix invalid usage of alignas in u_cpu_detect.c
...
This fixes the following errors when compiling Mesa with Clang 14:
../mesa-9999/src/util/u_cpu_detect.c:368:5: error: expected ';' after struct
} alignas(16) fxarea;
^
;
This has been tested with Clang 14.0.5 and GCC 12.1
Fixes: e3bc78b8e3 ("util: use c11 alignas instead of rolling our own")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6667
Signed-off-by: Mike Lothian <mike@fireburn.co.uk >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17035 >
2022-06-15 21:27:57 +00:00
Marek Olšák
e24354c1b2
radeonsi/gfx11: rework GDS streamout code to single-lane and enable streamout
...
GDS is basically scalar in gfx11.
This is not exactly how it's supposed to be done (we should be using
the GDS_STRMOUT registers), but it works.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
44e4d42c23
radeonsi/gfx11: add missing register shadowing code
...
it doesn't work yet
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
fbd68a3839
radeonsi/gfx11: drop the ES vertex count requirement
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
99fd408946
radeonsi/gfx11: don't allocate unused wait_mem_scratch
...
We sync using PWS instead of memory.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
98d6a3d6c6
radeonsi/gfx11: don't use memory for waiting for cache flushes
...
There is a new flush/wait mechanism called PixelWaitSync that uses
an internal counter.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
56d4e0be86
radeonsi/gfx11: synchronize correctly before setting SPI_ATTRIBUTE_RING_*
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
fa25eba744
radeonsi/gfx11: allocate more space for pipeline statistics
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
0e8beb1eed
radeonsi/gfx11: compile monolithic PS if it writes memory
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
ee7150da79
amd/gfx11: add PixelWaitSync packet fields
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Marek Olšák
7d8847d963
ac/llvm: fix tcs_wave_id unpacking on gfx11
...
no effect on behavior because the higher bits are always zero
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16990 >
2022-06-15 20:52:42 +00:00
Emma Anholt
ae432b67b7
ci/dzn: Skip a test that intermittently times out at a minute.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17054 >
2022-06-15 20:30:46 +00:00
Christian Gmeiner
15f394cc7a
nir: Fix unused-variable compile warnings
...
Fixes: 8492e78f9d ("nir/deref: Handle SSBO array bindings specially")
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17021 >
2022-06-15 19:43:27 +00:00
Timur Kristóf
08435b1c6f
radv: Always use 3D block ID and grid size in task shaders.
...
These are needed to address the task draw and payload ring buffers
when the task shader dispatch is 3 dimensional.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17023 >
2022-06-15 18:28:58 +00:00
Timur Kristóf
0fb9573c57
ac/nir/taskmesh: Preserve workgroup ID Y and Z when applying firstTask.
...
NV_mesh_shader workgroups are only 1 dimensional, so it's OK to
only add firstTask to the X dimension.
However, let's keep the Y and Z dimensions so this doesn't mess up
the workgroup ID for future 3 dimensional task shader dispatches.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17023 >
2022-06-15 18:28:58 +00:00
Timur Kristóf
b243e94f07
radv: Lower mesh shader 3D workgroup ID to 1D index.
...
This allows future mesh shaders to use a 3D workgroup ID.
Also changes how the NV_mesh_shader first_task is emulated.
The new code moves the responsibility from ac_nir into radv.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17023 >
2022-06-15 18:28:58 +00:00
Timur Kristóf
e05f63f56c
ac/nir/ngg: Add mesh shader workgroup index.
...
This will allow lowering 3D workgroup ID to a 1D index.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17023 >
2022-06-15 18:28:58 +00:00