nvk: Add and use more cmd_buffer_*_cls helpers

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28105>
This commit is contained in:
Faith Ekstrand 2024-03-11 11:41:40 -05:00 committed by Marge Bot
parent f55bb91159
commit 9ddaa4ea10
3 changed files with 12 additions and 4 deletions

View file

@ -22,6 +22,14 @@
#include "nvk_cl90b5.h"
#include "nvk_clc1b5.h"
static inline uint16_t
nvk_cmd_buffer_copy_cls(struct nvk_cmd_buffer *cmd)
{
struct nvk_device *dev = nvk_cmd_buffer_device(cmd);
struct nvk_physical_device *pdev = nvk_device_physical(dev);
return pdev->info.cls_copy;
}
struct nouveau_copy_buffer {
uint64_t base_addr;
VkImageType image_type;
@ -245,7 +253,7 @@ nouveau_copy_rect(struct nvk_cmd_buffer *cmd, struct nouveau_copy *copy)
else
P_NV90B5_SET_SRC_LAYER(p, 0);
if (nvk_cmd_buffer_device(cmd)->pdev->info.cls_copy >= 0xc1b5) {
if (nvk_cmd_buffer_copy_cls(cmd) >= PASCAL_DMA_COPY_B) {
P_MTHD(p, NVC1B5, SRC_ORIGIN_X);
P_NVC1B5_SRC_ORIGIN_X(p, copy->src.offset_el.x * src_bw);
P_NVC1B5_SRC_ORIGIN_Y(p, copy->src.offset_el.y);
@ -286,7 +294,7 @@ nouveau_copy_rect(struct nvk_cmd_buffer *cmd, struct nouveau_copy *copy)
else
P_NV90B5_SET_DST_LAYER(p, 0);
if (nvk_cmd_buffer_device(cmd)->pdev->info.cls_copy >= 0xc1b5) {
if (nvk_cmd_buffer_copy_cls(cmd) >= PASCAL_DMA_COPY_B) {
P_MTHD(p, NVC1B5, DST_ORIGIN_X);
P_NVC1B5_DST_ORIGIN_X(p, copy->dst.offset_el.x * dst_bw);
P_NVC1B5_DST_ORIGIN_Y(p, copy->dst.offset_el.y);

View file

@ -562,7 +562,7 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
struct nvk_descriptor_state *desc = &cmd->state.cs.descriptors;
/* TODO: Indirect dispatch pre-Turing */
assert(nvk_cmd_buffer_device(cmd)->pdev->info.cls_eng3d >= TURING_A);
assert(nvk_cmd_buffer_compute_cls(cmd) >= TURING_COMPUTE_A);
desc->root.cs.base_group[0] = 0;
desc->root.cs.base_group[1] = 0;

View file

@ -3428,7 +3428,7 @@ nvk_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,
uint64_t offset = pCounterBufferOffsets ? pCounterBufferOffsets[i] : 0;
uint64_t cb_addr = nvk_buffer_address(buffer, offset);
if (nvk_cmd_buffer_device(cmd)->pdev->info.cls_eng3d >= TURING_A) {
if (nvk_cmd_buffer_3d_cls(cmd) >= TURING_A) {
struct nv_push *p = nvk_cmd_buffer_push(cmd, 4);
P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_XFB_COUNTER_LOAD));
/* The STREAM_OUT_BUFFER_LOAD_WRITE_POINTER registers are 8 dword stride */