nv2a/vk: Ensure border color type matches format type

This commit is contained in:
Matt Borgerson 2024-07-26 17:21:01 -07:00 committed by mborgerson
parent 2bb2084ece
commit 497bac61c9
1 changed files with 8 additions and 3 deletions

View File

@ -1207,14 +1207,19 @@ static void create_texture(PGRAPHState *pg, int texture_idx)
} else {
// FIXME: Handle custom color in shader
if (border_color_pack32 == 0x00000000) {
vk_border_color = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK;
vk_border_color = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
} else if (border_color_pack32 == 0xff000000) {
vk_border_color = VK_BORDER_COLOR_INT_OPAQUE_BLACK;
vk_border_color = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
} else {
vk_border_color = VK_BORDER_COLOR_INT_OPAQUE_WHITE;
vk_border_color = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
}
}
if (vkf.vk_format == VK_FORMAT_R32_UINT) {
// Border color type must match sampled type
vk_border_color = VK_BORDER_COLOR_INT_OPAQUE_BLACK;
}
uint32_t filter = pgraph_reg_r(pg, NV_PGRAPH_TEXFILTER0 + texture_idx * 4);
if (filter & NV_PGRAPH_TEXFILTER0_ASIGNED)
NV2A_UNIMPLEMENTED("NV_PGRAPH_TEXFILTER0_ASIGNED");