radv: do not trigger FCE or FMASK decompress on compute queue
A pipeline barrier which contains an image layout transition like COLOR_ATTACHMENT_OPTIMAL -> TRANSFER_DST_OPTIMAL on compute queue would just hang. Such a barrier is useless in practice but it's legal. Prevent GPU hangs by skipping FCE or FMASK_DECOMPRESS when it's not on the graphics queue. Fixes dEQP-VK.synchronization2.layout_transition.compute_transition*. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34231>
This commit is contained in:
committed by
Marge Bot
parent
be481e6615
commit
086f529bbe
@@ -419,6 +419,9 @@ radv_fast_clear_eliminate(struct radv_cmd_buffer *cmd_buffer, struct radv_image
|
||||
{
|
||||
struct radv_barrier_data barrier = {0};
|
||||
|
||||
if (cmd_buffer->qf != RADV_QUEUE_GENERAL)
|
||||
return;
|
||||
|
||||
barrier.layout_transitions.fast_clear_eliminate = 1;
|
||||
radv_describe_layout_transition(cmd_buffer, &barrier);
|
||||
|
||||
@@ -431,6 +434,9 @@ radv_fmask_decompress(struct radv_cmd_buffer *cmd_buffer, struct radv_image *ima
|
||||
{
|
||||
struct radv_barrier_data barrier = {0};
|
||||
|
||||
if (cmd_buffer->qf != RADV_QUEUE_GENERAL)
|
||||
return;
|
||||
|
||||
barrier.layout_transitions.fmask_decompress = 1;
|
||||
radv_describe_layout_transition(cmd_buffer, &barrier);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user