From 17ab4459300e6eb2acec4c53861a64705c758f24 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:53 -0600 Subject: [PATCH] nvk: Bind texture and sampler header pools for 3D No idea if this has to be done separately for 3D vs. compute but it shouldn't hurt anything to do it for both. Part-of: --- src/nouveau/vulkan/nvk_cmd_draw.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c b/src/nouveau/vulkan/nvk_cmd_draw.c index d1bbfcb78b5..4b4fb7a7fad 100644 --- a/src/nouveau/vulkan/nvk_cmd_draw.c +++ b/src/nouveau/vulkan/nvk_cmd_draw.c @@ -170,6 +170,7 @@ void nvk_cmd_buffer_begin_graphics(struct nvk_cmd_buffer *cmd, const VkCommandBufferBeginInfo *pBeginInfo) { + struct nvk_device *dev = nvk_cmd_buffer_device(cmd); struct nouveau_ws_push *p = cmd->push; P_MTHD(p, NV9097, SET_OBJECT); @@ -214,6 +215,20 @@ nvk_cmd_buffer_begin_graphics(struct nvk_cmd_buffer *cmd, P_IMMD(p, NV9097, SET_SHADER_LOCAL_MEMORY_WINDOW, 0xff000000); /* TODO */ + nvk_push_descriptor_table_ref(p, &dev->samplers); + uint64_t tsp_addr = nvk_descriptor_table_base_address(&dev->samplers); + P_MTHD(p, NV9097, SET_TEX_SAMPLER_POOL_A); + P_NV9097_SET_TEX_SAMPLER_POOL_A(p, tsp_addr >> 32); + P_NV9097_SET_TEX_SAMPLER_POOL_B(p, tsp_addr); + P_NV9097_SET_TEX_SAMPLER_POOL_C(p, dev->samplers.alloc - 1); + + nvk_push_descriptor_table_ref(p, &dev->images); + uint64_t thp_addr = nvk_descriptor_table_base_address(&dev->images); + P_MTHD(p, NV9097, SET_TEX_HEADER_POOL_A); + P_NV9097_SET_TEX_HEADER_POOL_A(p, thp_addr >> 32); + P_NV9097_SET_TEX_HEADER_POOL_B(p, thp_addr & 0xffffffff); + P_NV9097_SET_TEX_HEADER_POOL_C(p, dev->images.alloc - 1); + /* TODO: TIC */ /* TODO: TSC */