mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
nvk: SET_REFERENCE is not legal anymore.
replace with WFI, this is possibly overkill Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35484>
This commit is contained in:
parent
6fa078c0be
commit
a2518c817f
2 changed files with 16 additions and 3 deletions
|
|
@ -15,6 +15,7 @@
|
|||
#include "cla1c0.h"
|
||||
#include "clc0c0.h"
|
||||
#include "clc5c0.h"
|
||||
#include "clcbc0.h"
|
||||
#include "clcdc0.h"
|
||||
#include "nv_push_cl90c0.h"
|
||||
#include "nv_push_cl9097.h"
|
||||
|
|
@ -24,6 +25,7 @@
|
|||
#include "nv_push_clc3c0.h"
|
||||
#include "nv_push_clc597.h"
|
||||
#include "nv_push_clc6c0.h"
|
||||
#include "nv_push_clc86f.h"
|
||||
|
||||
VkResult
|
||||
nvk_push_dispatch_state_init(struct nvk_queue *queue, struct nv_push *p)
|
||||
|
|
@ -529,6 +531,8 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
|
|||
{
|
||||
VK_FROM_HANDLE(nvk_cmd_buffer, cmd, commandBuffer);
|
||||
VK_FROM_HANDLE(nvk_buffer, buffer, _buffer);
|
||||
struct nvk_device *dev = nvk_cmd_buffer_device(cmd);
|
||||
const struct nvk_physical_device *pdev = nvk_device_physical(dev);
|
||||
|
||||
uint64_t dispatch_addr = vk_buffer_address(&buffer->vk, offset);
|
||||
|
||||
|
|
@ -561,7 +565,11 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
|
|||
} else {
|
||||
p = nvk_cmd_buffer_push(cmd, 5);
|
||||
/* Stall the command streamer */
|
||||
__push_immd(p, SUBC_NV9097, NV906F_SET_REFERENCE, 0);
|
||||
if (pdev->info.cls_compute >= HOPPER_COMPUTE_A) {
|
||||
P_IMMD(p, NVC86F, WFI, 0);
|
||||
} else {
|
||||
__push_immd(p, SUBC_NV9097, NV906F_SET_REFERENCE, 0);
|
||||
}
|
||||
|
||||
P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_DISPATCH_INDIRECT));
|
||||
nv_push_update_count(p, sizeof(VkDispatchIndirectCommand) / 4);
|
||||
|
|
|
|||
|
|
@ -13,12 +13,14 @@
|
|||
#include "nir_builder.h"
|
||||
#include "vk_pipeline.h"
|
||||
|
||||
#include "clcb97.h"
|
||||
#include "nv_push.h"
|
||||
#include "nv_push_cl9097.h"
|
||||
#include "nv_push_cl906f.h"
|
||||
#include "nv_push_cla0c0.h"
|
||||
#include "nv_push_clb1c0.h"
|
||||
#include "nv_push_clc6c0.h"
|
||||
#include "nv_push_clc86f.h"
|
||||
|
||||
struct nvk_indirect_commands_layout {
|
||||
struct vk_object_base base;
|
||||
|
|
@ -1035,7 +1037,7 @@ nvk_CmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuffer,
|
|||
nvk_cmd_flush_process_state(cmd, info);
|
||||
nvk_cmd_process_cmds(cmd, info, &cmd->state);
|
||||
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 5);
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 6);
|
||||
P_IMMD(p, NVA0C0, INVALIDATE_SHADER_CACHES, {
|
||||
.data = DATA_TRUE,
|
||||
.constant = CONSTANT_TRUE,
|
||||
|
|
@ -1043,7 +1045,10 @@ nvk_CmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuffer,
|
|||
});
|
||||
if (pdev->info.cls_eng3d >= MAXWELL_COMPUTE_B)
|
||||
P_IMMD(p, NVB1C0, INVALIDATE_SKED_CACHES, 0);
|
||||
__push_immd(p, SUBC_NV9097, NV906F_SET_REFERENCE, 0);
|
||||
if (pdev->info.cls_eng3d >= HOPPER_A)
|
||||
P_IMMD(p, NVC86F, WFI, 0);
|
||||
else
|
||||
__push_immd(p, SUBC_NV9097, NV906F_SET_REFERENCE, 0);
|
||||
}
|
||||
|
||||
if (layout->stages & VK_SHADER_STAGE_COMPUTE_BIT) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue