From 0c6c2fe2cf50dd7daa758953a61790e25351d605 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:54 -0600 Subject: [PATCH] nil: Rename rendering to color_target Also, add a helper for depth/stencil formats and use nil_format_supports_color_targets() helper to compute Vulkan format features rather than checking for a non-zero color format. Part-of: --- src/nouveau/nil/nil_format.c | 16 ++++++++++++---- src/nouveau/nil/nil_format.h | 8 +++++--- src/nouveau/vulkan/nvk_cmd_draw.c | 6 ++++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/nouveau/nil/nil_format.c b/src/nouveau/nil/nil_format.c index c8b9c0c..0c9efd7 100644 --- a/src/nouveau/nil/nil_format.c +++ b/src/nouveau/nil/nil_format.c @@ -330,16 +330,24 @@ static const struct nil_format_info nil_format_infos[PIPE_FORMAT_COUNT] = }; bool -nil_format_supports_render(struct nouveau_ws_device *dev, - enum pipe_format format) +nil_format_supports_color_targets(struct nouveau_ws_device *dev, + enum pipe_format format) { assert(format < PIPE_FORMAT_COUNT); const struct nil_format_info *fmt = &nil_format_infos[format]; return fmt->czt != 0; } -uint32_t -nil_format_to_render(enum pipe_format format) +uint8_t +nil_format_to_color_target(enum pipe_format format) +{ + assert(format < PIPE_FORMAT_COUNT); + const struct nil_format_info *fmt = &nil_format_infos[format]; + return fmt->czt; +} + +uint8_t +nil_format_to_depth_stencil(enum pipe_format format) { assert(format < PIPE_FORMAT_COUNT); const struct nil_format_info *fmt = &nil_format_infos[format]; diff --git a/src/nouveau/nil/nil_format.h b/src/nouveau/nil/nil_format.h index 12825c5..acd6ee0 100644 --- a/src/nouveau/nil/nil_format.h +++ b/src/nouveau/nil/nil_format.h @@ -11,10 +11,12 @@ struct nouveau_ws_device; /* We don't have our own format enum; we use PIPE_FORMAT for everything */ -bool nil_format_supports_render(struct nouveau_ws_device *dev, - enum pipe_format format); +bool nil_format_supports_color_targets(struct nouveau_ws_device *dev, + enum pipe_format format); -uint32_t nil_format_to_render(enum pipe_format format); +uint8_t nil_format_to_color_target(enum pipe_format format); + +uint8_t nil_format_to_depth_stencil(enum pipe_format format); struct nil_tic_format { unsigned comp_sizes:8; diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c b/src/nouveau/vulkan/nvk_cmd_draw.c index 3eafe2e..e994902 100644 --- a/src/nouveau/vulkan/nvk_cmd_draw.c +++ b/src/nouveau/vulkan/nvk_cmd_draw.c @@ -434,7 +434,8 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer, P_NV9097_SET_COLOR_TARGET_HEIGHT(p, i, iview->vk.extent.height); const enum pipe_format p_format = vk_format_to_pipe_format(iview->vk.format); - P_NV9097_SET_COLOR_TARGET_FORMAT(p, i, nil_format_to_render(p_format)); + const uint8_t ct_format = nil_format_to_color_target(p_format); + P_NV9097_SET_COLOR_TARGET_FORMAT(p, i, ct_format); P_NV9097_SET_COLOR_TARGET_MEMORY(p, i, { .block_width = BLOCK_WIDTH_ONE_GOB, .block_height = level->tiling.y_log2, @@ -497,7 +498,8 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer, P_NV9097_SET_ZT_B(p, addr); const enum pipe_format p_format = vk_format_to_pipe_format(iview->vk.format); - P_NV9097_SET_ZT_FORMAT(p, nil_format_to_render(p_format)); + const uint8_t zs_format = nil_format_to_depth_stencil(p_format); + P_NV9097_SET_ZT_FORMAT(p, zs_format); assert(image->nil.dim != NIL_IMAGE_DIM_3D); P_NV9097_SET_ZT_BLOCK_SIZE(p, { .width = WIDTH_ONE_GOB, -- 2.7.4