Pierre-Eric Pelloux-Prayer
77116d34ea
radeonsi: make sure profile_peak is used before using sqtt
...
Using sqtt without this profile can cause hangs.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15646 >
2022-04-22 13:51:44 +02:00
Pierre-Eric Pelloux-Prayer
c96ee36289
radeonsi/sqtt: enable spm counters on gfx10+
...
Tested on:
- navi10: L0 cache counter doesn't work (always 0)
- sienna_cichlid: L0 doesn't work (always 0) and L1 isn't visible in RGP
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15646 >
2022-04-22 13:51:44 +02:00
Pierre-Eric Pelloux-Prayer
e5e8b56236
radeonsi/sqtt: setup spm bo
...
The hardware will write SPM counters to this bo.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15646 >
2022-04-22 13:12:10 +02:00
Pierre-Eric Pelloux-Prayer
a884f36949
radeonsi: add spm counters setup code
...
Based on radv_spm.c and PAL.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15646 >
2022-04-22 13:12:08 +02:00
Pierre-Eric Pelloux-Prayer
bb16154d94
radeonsi: add helpers to deal with spm counters
...
Based on radv_perfcounter.c
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15646 >
2022-04-22 13:12:06 +02:00
Pierre-Eric Pelloux-Prayer
0d733e940b
radeonsi: make si_pc_emit_shaders non static
...
Also pass "cs" as a param to allow updating a specific cs.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15646 >
2022-04-22 13:11:45 +02:00
Boris Brezillon
e018311b35
dzn: Add KHR_draw_indirect_count support
...
Unfortunately it's not as simple as passing the indirect draw count
buffer to ExecuteIndirect. The compute job that populate the execute
buffer also needs to know the number of entries that need to be
patched. Instead of transitioning the indirect count buffer from
GENERIC_READ to INDIRECT_ARGUMENT we just keep at as a read-only
resource and copy the draw_count value to the exec buffer in the
compute job.
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15914 >
2022-04-22 10:01:51 +00:00
Boris Brezillon
ece5e27a7f
dzn: Allow multiDrawIndirect and drawIndirectFirstInstance
...
Those are already supported, let's just toggle the switch.
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15914 >
2022-04-22 10:01:51 +00:00
Juan A. Suarez Romero
697e98c66e
v3dv: duplicate key on hashtable insert
...
The key is created on stack, so as soon as the function returns this key
is lost, so the inserted key in the hashtable is invalid.
Rather, insert a duplicated version on heap.
This fixes a stack-buffer-overflow when running some Vulkan CTS tests.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16083 >
2022-04-22 09:18:15 +00:00
Juan A. Suarez Romero
39cebe24ae
gallium: move get_canonical_format hook to pipe_screen
...
pipe_context shouldn't have functions that return values because this
prevent multithreading.
Move this hook to pipe_screen.
Fixes: 606e42027e ("gallium: add hook on getting canonical format")
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16078 >
2022-04-22 08:51:56 +00:00
Boris Brezillon
e293691a99
dzn: Get rid of the render pass logic
...
The core provides generic render-pass -> dynamic-rendering wrappers,
so let's rely on them instead of implementing our own logic.
Suggested-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15913 >
2022-04-22 01:07:51 -07:00
Boris Brezillon
2d0798440b
dzn: Add support for dynamic rendering
...
This is how D3D12 works, so nothing really complicated here. We just
add a bunch of states to the render state, patch the pipeline building
logic to support dynamic rendering, and add new functions to
Suggested-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15913 >
2022-04-22 01:07:49 -07:00
Boris Brezillon
076eac0e62
dzn: Inline dzn_cmd_buffer_clear_attachments()
...
It's only called from dzn_CmdClearAttachments(), so let's move the
code there.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15913 >
2022-04-22 01:07:22 -07:00
Boris Brezillon
70b06e775b
dzn: Move all render-related states to a substruct
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15913 >
2022-04-22 01:07:22 -07:00
Boris Brezillon
d3836df8d4
dzn: Set MAX_RTS to D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT
...
D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT == 8, so no functional change
here, it's just cleaner to use the D3D12 definition.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15913 >
2022-04-22 01:07:22 -07:00
Boris Brezillon
39851688df
dzn: Pass an image view to dzn_cmd_buffer_clear_attachment()
...
Let the caller extract the image view from the attachment index, so
we can make this function framebuffer-agnostic and re-use it in the
dynamic rendering path.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15913 >
2022-04-22 01:07:22 -07:00
Boris Brezillon
3420110ee7
dzn: Advertise KHR_shader_draw_parameters
...
We already pass those parameters to shaders, so let's advertise the
feature.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15912 >
2022-04-22 07:31:44 +00:00
Boris Brezillon
2eadd8dd16
dzn: Update the draw_id sysval when issuing indirect draws
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15912 >
2022-04-22 07:31:44 +00:00
Boris Brezillon
02d8436bbd
dzn: Simplify the triangle_fan_rewrite_index shader
...
We don't need the first_vertex argument when turning non-indexed
triangle-fan draws into indexed triangle-list ones, the firstVertex
argument can simply be passed as a vertexOffset.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15912 >
2022-04-22 07:31:44 +00:00
Boris Brezillon
1cefda7cb4
dzn: Fix exec_buf_stride calculation
...
The stride depends on the indirect draw arguments which are different if
triangle-fan emulation is required.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15912 >
2022-04-22 07:31:44 +00:00
Boris Brezillon
7673697256
microsoft/spirv_to_dxil: Add a draw_id field to vertex_runtime_data
...
So we can support the draw_id system value.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15912 >
2022-04-22 07:31:44 +00:00
Samuel Pitoiset
5121e6dd7e
radv: only apply enable_mrt_output_nan_fixup for 32-bit float MRTs
...
This is incorrect for 32-bit integer MRTs which are clamped to the
maximum value of the format, and returning 0 can break some shaders.
This fixes a rendering issue with RAGE2.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4329
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16080 >
2022-04-22 06:49:46 +00:00
Dylan Baker
d839d37642
docs: update calendar for 22.1.0-rc2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16089 >
2022-04-21 21:33:05 -07:00
Dylan Baker
5afa2cb0b3
docs: update calendar for 22.1.0-rc1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16089 >
2022-04-21 21:33:05 -07:00
Dylan Baker
cdfece6123
docs: update calendar and link releases notes for 22.0.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16089 >
2022-04-21 21:33:05 -07:00
Dylan Baker
f64e509672
docs: Add sha256sums for 22.0.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16089 >
2022-04-21 21:33:05 -07:00
Dylan Baker
c2c3bc5d9e
docs: add release notes for 22.0.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16089 >
2022-04-21 21:33:05 -07:00
Mike Blumenkrantz
5e84335fb5
zink: fix memory_barrier intrinsic
...
matching glsang behavior here
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15959 >
2022-04-22 03:35:45 +00:00
Mike Blumenkrantz
5a2acfeffb
zink: always use vk mem model for shaders if available
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15959 >
2022-04-22 03:35:45 +00:00
Mike Blumenkrantz
306b5f3724
zink: use vulkan memory model shader semantics for tcs barriers
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15959 >
2022-04-22 03:35:44 +00:00
Mike Blumenkrantz
6f04f4c8ea
zink: hook up VK_KHR_vulkan_memory_model
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15959 >
2022-04-22 03:35:44 +00:00
Mike Blumenkrantz
5e931cd0e1
zink: fix semantics mask for compute control barriers
...
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15959 >
2022-04-22 03:35:44 +00:00
Mike Blumenkrantz
55baf0c676
zink: fix tcs control barriers for use without vk memory model
...
these are translated into memory+control barriers in nir, and only
the control barrier needs to be handled
these semantics match what glslang does, so they must be right
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15959 >
2022-04-22 03:35:44 +00:00
Sidney Just
01ed71f945
wgl: support kopper
...
this is semi transposed from the dri version of kopper and mostly ignores
what wgl tries to do in order to let zink drive everything
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16068 >
2022-04-22 01:11:52 +00:00
Sidney Just
a88bb3c5fb
zink: support win32 wsi
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16068 >
2022-04-22 01:11:52 +00:00
Sidney Just
9b6b5e74fa
kopper: add win32 loader interface
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16068 >
2022-04-22 01:11:52 +00:00
Sidney Just
92a7caaf03
zink: support VK_KHR_win32_surface
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16068 >
2022-04-22 01:11:52 +00:00
Sidney Just
400661c122
wgl: add zink to the list of auto-loaded drivers
...
it's a legitimate driver!
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16068 >
2022-04-22 01:11:52 +00:00
Sidney Just
863ce662b4
wgl: add a flag to determine if running on zink
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16068 >
2022-04-22 01:11:52 +00:00
Mike Blumenkrantz
3d5e6093a2
zink: add a stencil blit fallback path
...
nvidia doesn't support stencil exports, so this is necessary to handle
stencil-only blits
fixes #6316
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16071 >
2022-04-22 00:59:31 +00:00
Mike Blumenkrantz
c3caf5f183
zink: rework clear_depth_stencil hook
...
u_blitter works great, but it doesn't handle recursion, so only use
it as a last resort
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16071 >
2022-04-22 00:59:31 +00:00
Mike Blumenkrantz
605f3021f0
zink: make update_framebuffer_state() public
...
this is useful
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16071 >
2022-04-22 00:59:31 +00:00
Mike Blumenkrantz
710ad9cd6b
zink: make unsupported blit formats an error
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16071 >
2022-04-22 00:59:31 +00:00
Paulo Zanoni
3532c374de
iris: fix race condition during busy tracking
...
The Iris code that deals with implicit tracking is protected by
bufmgr->bo_deps_lock. Before this patch, we hold this lock during
update_batch_syncobjs() but don't keep it held until we actually
submit the batch in the execbuf ioctl. This can lead to the following
race condition:
- Context C1 generates a batch B1 that signals syncobj S1.
- Context C2 generates a batch B2 that depends on something that B1
from C1 is using, so we mark B2 as having to wait syncobj S1.
- C2 calls submit_batch() before C1 does it.
- The Kernel detects it was told to wait on syncobj S1 that was
never even submitted, so it returns EINVAL to the execbuf ioctl.
- We run abort() at the end of _iris_batch_flush().
- If DEBUG is defined, we also print:
iris: Failed to submit batchbuffer: Invalid argument
I couldn't figure out a way to reproduce this issue with real
workloads, but I was able to write a small reproducer to trigger this.
Basically it's a little GL program that has lots of contexts running
in different threads submitting compute shaders that keep using the
same SSBOs. I'll submit this as a piglit test. Edit: Tapani found a
dEQP test case which fails intermintently without this fix, so I'm not
sure a new Piglit is worth it now.
The solution itself is quite simple: just keep bo_deps_lock held all
the way from update_batch_syncobjs() until ioctl(). In order to make
that easier we just call update_batch_syncobjs() a little later. We
have to drop the lock as soon as the ioctl returns because removing
the references on the buffers would trigger other functions to try to
grab the lock again, leading to deadlocks.
Thanks to Kenneth Graunke for pointing out this issue.
This has also been confirmed to fix a dEQP test that was giving
intermittent failures:
dEQP-EGL.functional.sharing.gles2.multithread.random.images.copyteximage2d.12
v2: Move decode_batch() out, just to be safe (Jason).
v3: Do it all after assembling validation_list (Ken).
Cc: mesa-stable
Fixes: 89a34cb845 ("iris: switch to explicit busy tracking")
Tested-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14964 >
2022-04-21 22:51:25 +00:00
Yonggang Luo
370a851ef0
zink: Improve zink.rst with links
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16026 >
2022-04-21 22:46:40 +00:00
Yonggang Luo
b0de09f48a
zink: Trim spaces in zink.rst
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16026 >
2022-04-21 22:46:40 +00:00
Mike Blumenkrantz
f8f5b5455a
wgl: support GL 4.6
...
somehow we never supported anything above 4.5?
cc: mesa-stable
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16085 >
2022-04-21 19:37:55 +00:00
Mike Blumenkrantz
64d5f71bbc
zink: move the kopper present fence to the displaytarget object
...
this is otherwise broken when front/back buffers share the same dt
Fixes: 8ade5588e3 ("zink: add kopper api")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16070 >
2022-04-21 19:25:51 +00:00
Emma Anholt
c5cc9ed29b
virgl: Switch to nir-to-tgsi by default.
...
With !8044 all TGSI drivers will end up going through the nir-to-tgsi
path, so make the switch now that CI is happy (which will also make sure
that future NTT work doesn't break virgl).
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13295 >
2022-04-21 18:27:35 +00:00
Emma Anholt
337b3dabc0
tgsi: Extend array lengths when merging usage_masks.
...
With nir-to-tgsi, virgl saw a case where a previous declaration of array
.x and scalar .y (turning into an array with .xy) ended up being a
declaration of scalar .x and array .y (turning into a scalar with .xy).
Make sure we extend the declared array length as well.
One might think that the fix would be to union the .first/.last between
the two declarations being merged, but note that ureg_DECL_output() passes
in the current nr_output_regs as the index, so the .last would end up
getting extended for those callers (such as nir_to_tgsi fs outputs) every
time you merged.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13295 >
2022-04-21 18:27:35 +00:00