diff --git a/src/xenia/gpu/vulkan/vulkan_texture_cache.cc b/src/xenia/gpu/vulkan/vulkan_texture_cache.cc index 142a212cd..5ea70c5b8 100644 --- a/src/xenia/gpu/vulkan/vulkan_texture_cache.cc +++ b/src/xenia/gpu/vulkan/vulkan_texture_cache.cc @@ -173,17 +173,13 @@ const VulkanTextureCache::HostFormatPair {kLoadShaderIndexUnknown}, xenos::XE_GPU_TEXTURE_SWIZZLE_RGBA}, // k_10_11_11 - // TODO(Triang3l): 16_UNORM/SNORM are optional, convert to float16 - // instead. - {{kLoadShaderIndexR11G11B10ToRGBA16, VK_FORMAT_R16G16B16A16_UNORM}, - {kLoadShaderIndexR11G11B10ToRGBA16SNorm, VK_FORMAT_R16G16B16A16_SNORM}, - xenos::XE_GPU_TEXTURE_SWIZZLE_RGBB}, + {{kLoadShaderIndex32bpb, VK_FORMAT_B10G11R11_UFLOAT_PACK32}, + {kLoadShaderIndexUnknown}, + xenos::XE_GPU_TEXTURE_SWIZZLE_BGRR}, // k_11_11_10 - // TODO(Triang3l): 16_UNORM/SNORM are optional, convert to float16 - // instead. - {{kLoadShaderIndexR10G11B11ToRGBA16, VK_FORMAT_R16G16B16A16_UNORM}, - {kLoadShaderIndexR10G11B11ToRGBA16SNorm, VK_FORMAT_R16G16B16A16_SNORM}, - xenos::XE_GPU_TEXTURE_SWIZZLE_RGBB}, + {{kLoadShaderIndex32bpb, VK_FORMAT_B10G11R11_UFLOAT_PACK32}, + {kLoadShaderIndexUnknown}, + xenos::XE_GPU_TEXTURE_SWIZZLE_BGRR}, // k_DXT1 // VK_FORMAT_BC1_RGBA_UNORM_BLOCK is optional. {{kLoadShaderIndex64bpb, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, true}, @@ -205,7 +201,7 @@ const VulkanTextureCache::HostFormatPair {kLoadShaderIndexUnknown}, xenos::XE_GPU_TEXTURE_SWIZZLE_RGBA}, // k_24_8 - {{kLoadShaderIndexDepthUnorm, VK_FORMAT_R32_SFLOAT}, + {{kLoadShaderIndexDepthUnorm, VK_FORMAT_D24_UNORM_S8_UINT}, {kLoadShaderIndexUnknown}, xenos::XE_GPU_TEXTURE_SWIZZLE_RRRR}, // k_24_8_FLOAT @@ -262,16 +258,16 @@ const VulkanTextureCache::HostFormatPair xenos::XE_GPU_TEXTURE_SWIZZLE_RGBA, true}, // k_32 - {{kLoadShaderIndexUnknown}, - {kLoadShaderIndexUnknown}, + {{kLoadShaderIndex32bpb, VK_FORMAT_R32_UINT}, + {kLoadShaderIndex32bpb, VK_FORMAT_R32_SINT}, xenos::XE_GPU_TEXTURE_SWIZZLE_RRRR}, // k_32_32 - {{kLoadShaderIndexUnknown}, - {kLoadShaderIndexUnknown}, + {{kLoadShaderIndex64bpb, VK_FORMAT_R32G32_UINT}, + {kLoadShaderIndex64bpb, VK_FORMAT_R32G32_SINT}, xenos::XE_GPU_TEXTURE_SWIZZLE_RGGG}, // k_32_32_32_32 - {{kLoadShaderIndexUnknown}, - {kLoadShaderIndexUnknown}, + {{kLoadShaderIndex128bpb, VK_FORMAT_R32G32B32A32_UINT}, + {kLoadShaderIndex128bpb, VK_FORMAT_R32G32B32A32_SINT}, xenos::XE_GPU_TEXTURE_SWIZZLE_RGBA}, // k_32_FLOAT {{kLoadShaderIndex32bpb, VK_FORMAT_R32_SFLOAT}, diff --git a/src/xenia/gpu/xenos.h b/src/xenia/gpu/xenos.h index 49d4eb576..cd08b1bda 100644 --- a/src/xenia/gpu/xenos.h +++ b/src/xenia/gpu/xenos.h @@ -1047,6 +1047,7 @@ typedef enum { XE_GPU_TEXTURE_SWIZZLE_RGGG = XE_GPU_MAKE_TEXTURE_SWIZZLE(R, G, G, G), XE_GPU_TEXTURE_SWIZZLE_RGBB = XE_GPU_MAKE_TEXTURE_SWIZZLE(R, G, B, B), XE_GPU_TEXTURE_SWIZZLE_RGBA = XE_GPU_MAKE_TEXTURE_SWIZZLE(R, G, B, A), + XE_GPU_TEXTURE_SWIZZLE_BGRR = XE_GPU_MAKE_TEXTURE_SWIZZLE(B, G, R, R), XE_GPU_TEXTURE_SWIZZLE_0000 = XE_GPU_MAKE_TEXTURE_SWIZZLE(0, 0, 0, 0), } XE_GPU_TEXTURE_SWIZZLE; diff --git a/third_party/Vulkan-Headers b/third_party/Vulkan-Headers index c6391a7b8..5ceb9ed48 160000 --- a/third_party/Vulkan-Headers +++ b/third_party/Vulkan-Headers @@ -1 +1 @@ -Subproject commit c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b +Subproject commit 5ceb9ed481e58e705d0d9b5326537daedd06b97d diff --git a/third_party/VulkanMemoryAllocator b/third_party/VulkanMemoryAllocator index 3bab69249..c788c5215 160000 --- a/third_party/VulkanMemoryAllocator +++ b/third_party/VulkanMemoryAllocator @@ -1 +1 @@ -Subproject commit 3bab6924988e5f19bf36586a496156cf72f70d9f +Subproject commit c788c52156f3ef7bc7ab769cb03c110a53ac8fcb