summaryrefslogtreecommitdiffstats
path: root/tools/gfx/vulkan/vk-util.cpp
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-10-29 14:49:26 +0800
committerGitHub <noreply@github.com>2024-10-29 14:49:26 +0800
commitf65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch)
treeea1d61342cd29368e19135000ec2948813096205 /tools/gfx/vulkan/vk-util.cpp
parenta729c15e9dce9f5116a38afc66329ab2ca4cea54 (diff)
format
* format * Minor test fixes * enable checking cpp format in ci
Diffstat (limited to 'tools/gfx/vulkan/vk-util.cpp')
-rw-r--r--tools/gfx/vulkan/vk-util.cpp624
1 files changed, 245 insertions, 379 deletions
diff --git a/tools/gfx/vulkan/vk-util.cpp b/tools/gfx/vulkan/vk-util.cpp
index 1a571c812..696e80fc7 100644
--- a/tools/gfx/vulkan/vk-util.cpp
+++ b/tools/gfx/vulkan/vk-util.cpp
@@ -1,121 +1,123 @@
// vk-util.cpp
#include "vk-util.h"
+
#include "core/slang-math.h"
-#include <stdlib.h>
#include <stdio.h>
+#include <stdlib.h>
-namespace gfx {
+namespace gfx
+{
-/* static */VkFormat VulkanUtil::getVkFormat(Format format)
+/* static */ VkFormat VulkanUtil::getVkFormat(Format format)
{
switch (format)
{
- case Format::R32G32B32A32_TYPELESS: return VK_FORMAT_R32G32B32A32_SFLOAT;
- case Format::R32G32B32_TYPELESS: return VK_FORMAT_R32G32B32_SFLOAT;
- case Format::R32G32_TYPELESS: return VK_FORMAT_R32G32_SFLOAT;
- case Format::R32_TYPELESS: return VK_FORMAT_R32_SFLOAT;
-
- case Format::R16G16B16A16_TYPELESS: return VK_FORMAT_R16G16B16A16_SFLOAT;
- case Format::R16G16_TYPELESS: return VK_FORMAT_R16G16_SFLOAT;
- case Format::R16_TYPELESS: return VK_FORMAT_R16_SFLOAT;
-
- case Format::R8G8B8A8_TYPELESS: return VK_FORMAT_R8G8B8A8_UNORM;
- case Format::R8G8_TYPELESS: return VK_FORMAT_R8G8_UNORM;
- case Format::R8_TYPELESS: return VK_FORMAT_R8_UNORM;
- case Format::B8G8R8A8_TYPELESS: return VK_FORMAT_B8G8R8A8_UNORM;
-
- case Format::R64_UINT: return VK_FORMAT_R64_UINT;
-
- case Format::R32G32B32A32_FLOAT: return VK_FORMAT_R32G32B32A32_SFLOAT;
- case Format::R32G32B32_FLOAT: return VK_FORMAT_R32G32B32_SFLOAT;
- case Format::R32G32_FLOAT: return VK_FORMAT_R32G32_SFLOAT;
- case Format::R32_FLOAT: return VK_FORMAT_R32_SFLOAT;
-
- case Format::R16G16B16A16_FLOAT: return VK_FORMAT_R16G16B16A16_SFLOAT;
- case Format::R16G16_FLOAT: return VK_FORMAT_R16G16_SFLOAT;
- case Format::R16_FLOAT: return VK_FORMAT_R16_SFLOAT;
-
- case Format::R32G32B32A32_UINT: return VK_FORMAT_R32G32B32A32_UINT;
- case Format::R32G32B32_UINT: return VK_FORMAT_R32G32B32_UINT;
- case Format::R32G32_UINT: return VK_FORMAT_R32G32_UINT;
- case Format::R32_UINT: return VK_FORMAT_R32_UINT;
-
- case Format::R16G16B16A16_UINT: return VK_FORMAT_R16G16B16A16_UINT;
- case Format::R16G16_UINT: return VK_FORMAT_R16G16_UINT;
- case Format::R16_UINT: return VK_FORMAT_R16_UINT;
-
- case Format::R8G8B8A8_UINT: return VK_FORMAT_R8G8B8A8_UINT;
- case Format::R8G8_UINT: return VK_FORMAT_R8G8_UINT;
- case Format::R8_UINT: return VK_FORMAT_R8_UINT;
-
- case Format::R64_SINT: return VK_FORMAT_R64_SINT;
-
- case Format::R32G32B32A32_SINT: return VK_FORMAT_R32G32B32A32_SINT;
- case Format::R32G32B32_SINT: return VK_FORMAT_R32G32B32_SINT;
- case Format::R32G32_SINT: return VK_FORMAT_R32G32_SINT;
- case Format::R32_SINT: return VK_FORMAT_R32_SINT;
-
- case Format::R16G16B16A16_SINT: return VK_FORMAT_R16G16B16A16_SINT;
- case Format::R16G16_SINT: return VK_FORMAT_R16G16_SINT;
- case Format::R16_SINT: return VK_FORMAT_R16_SINT;
-
- case Format::R8G8B8A8_SINT: return VK_FORMAT_R8G8B8A8_SINT;
- case Format::R8G8_SINT: return VK_FORMAT_R8G8_SINT;
- case Format::R8_SINT: return VK_FORMAT_R8_SINT;
-
- case Format::R16G16B16A16_UNORM: return VK_FORMAT_R16G16B16A16_UNORM;
- case Format::R16G16_UNORM: return VK_FORMAT_R16G16_UNORM;
- case Format::R16_UNORM: return VK_FORMAT_R16_UNORM;
-
- case Format::R8G8B8A8_UNORM: return VK_FORMAT_R8G8B8A8_UNORM;
- case Format::R8G8B8A8_UNORM_SRGB: return VK_FORMAT_R8G8B8A8_SRGB;
- case Format::R8G8_UNORM: return VK_FORMAT_R8G8_UNORM;
- case Format::R8_UNORM: return VK_FORMAT_R8_UNORM;
- case Format::B8G8R8A8_UNORM: return VK_FORMAT_B8G8R8A8_UNORM;
- case Format::B8G8R8A8_UNORM_SRGB: return VK_FORMAT_B8G8R8A8_SRGB;
- case Format::B8G8R8X8_UNORM: return VK_FORMAT_B8G8R8A8_UNORM;
- case Format::B8G8R8X8_UNORM_SRGB: return VK_FORMAT_B8G8R8A8_SRGB;
-
- case Format::R16G16B16A16_SNORM: return VK_FORMAT_R16G16B16A16_SNORM;
- case Format::R16G16_SNORM: return VK_FORMAT_R16G16_SNORM;
- case Format::R16_SNORM: return VK_FORMAT_R16_SNORM;
-
- case Format::R8G8B8A8_SNORM: return VK_FORMAT_R8G8B8A8_SNORM;
- case Format::R8G8_SNORM: return VK_FORMAT_R8G8_SNORM;
- case Format::R8_SNORM: return VK_FORMAT_R8_SNORM;
-
- case Format::D32_FLOAT: return VK_FORMAT_D32_SFLOAT;
- case Format::D16_UNORM: return VK_FORMAT_D16_UNORM;
- case Format::D32_FLOAT_S8_UINT: return VK_FORMAT_D32_SFLOAT_S8_UINT;
- case Format::R32_FLOAT_X32_TYPELESS: return VK_FORMAT_R32_SFLOAT;
-
- case Format::B4G4R4A4_UNORM: return VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT;
- case Format::B5G6R5_UNORM: return VK_FORMAT_R5G6B5_UNORM_PACK16;
- case Format::B5G5R5A1_UNORM: return VK_FORMAT_A1R5G5B5_UNORM_PACK16;
-
- case Format::R9G9B9E5_SHAREDEXP: return VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
- case Format::R10G10B10A2_TYPELESS: return VK_FORMAT_A2B10G10R10_UINT_PACK32;
- case Format::R10G10B10A2_UINT: return VK_FORMAT_A2B10G10R10_UINT_PACK32;
- case Format::R10G10B10A2_UNORM: return VK_FORMAT_A2B10G10R10_UNORM_PACK32;
- case Format::R11G11B10_FLOAT: return VK_FORMAT_B10G11R11_UFLOAT_PACK32;
-
- case Format::BC1_UNORM: return VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
- case Format::BC1_UNORM_SRGB: return VK_FORMAT_BC1_RGBA_SRGB_BLOCK;
- case Format::BC2_UNORM: return VK_FORMAT_BC2_UNORM_BLOCK;
- case Format::BC2_UNORM_SRGB: return VK_FORMAT_BC2_SRGB_BLOCK;
- case Format::BC3_UNORM: return VK_FORMAT_BC3_UNORM_BLOCK;
- case Format::BC3_UNORM_SRGB: return VK_FORMAT_BC3_SRGB_BLOCK;
- case Format::BC4_UNORM: return VK_FORMAT_BC4_UNORM_BLOCK;
- case Format::BC4_SNORM: return VK_FORMAT_BC4_SNORM_BLOCK;
- case Format::BC5_UNORM: return VK_FORMAT_BC5_UNORM_BLOCK;
- case Format::BC5_SNORM: return VK_FORMAT_BC5_SNORM_BLOCK;
- case Format::BC6H_UF16: return VK_FORMAT_BC6H_UFLOAT_BLOCK;
- case Format::BC6H_SF16: return VK_FORMAT_BC6H_SFLOAT_BLOCK;
- case Format::BC7_UNORM: return VK_FORMAT_BC7_UNORM_BLOCK;
- case Format::BC7_UNORM_SRGB: return VK_FORMAT_BC7_SRGB_BLOCK;
-
- default: return VK_FORMAT_UNDEFINED;
+ case Format::R32G32B32A32_TYPELESS: return VK_FORMAT_R32G32B32A32_SFLOAT;
+ case Format::R32G32B32_TYPELESS: return VK_FORMAT_R32G32B32_SFLOAT;
+ case Format::R32G32_TYPELESS: return VK_FORMAT_R32G32_SFLOAT;
+ case Format::R32_TYPELESS: return VK_FORMAT_R32_SFLOAT;
+
+ case Format::R16G16B16A16_TYPELESS: return VK_FORMAT_R16G16B16A16_SFLOAT;
+ case Format::R16G16_TYPELESS: return VK_FORMAT_R16G16_SFLOAT;
+ case Format::R16_TYPELESS: return VK_FORMAT_R16_SFLOAT;
+
+ case Format::R8G8B8A8_TYPELESS: return VK_FORMAT_R8G8B8A8_UNORM;
+ case Format::R8G8_TYPELESS: return VK_FORMAT_R8G8_UNORM;
+ case Format::R8_TYPELESS: return VK_FORMAT_R8_UNORM;
+ case Format::B8G8R8A8_TYPELESS: return VK_FORMAT_B8G8R8A8_UNORM;
+
+ case Format::R64_UINT: return VK_FORMAT_R64_UINT;
+
+ case Format::R32G32B32A32_FLOAT: return VK_FORMAT_R32G32B32A32_SFLOAT;
+ case Format::R32G32B32_FLOAT: return VK_FORMAT_R32G32B32_SFLOAT;
+ case Format::R32G32_FLOAT: return VK_FORMAT_R32G32_SFLOAT;
+ case Format::R32_FLOAT: return VK_FORMAT_R32_SFLOAT;
+
+ case Format::R16G16B16A16_FLOAT: return VK_FORMAT_R16G16B16A16_SFLOAT;
+ case Format::R16G16_FLOAT: return VK_FORMAT_R16G16_SFLOAT;
+ case Format::R16_FLOAT: return VK_FORMAT_R16_SFLOAT;
+
+ case Format::R32G32B32A32_UINT: return VK_FORMAT_R32G32B32A32_UINT;
+ case Format::R32G32B32_UINT: return VK_FORMAT_R32G32B32_UINT;
+ case Format::R32G32_UINT: return VK_FORMAT_R32G32_UINT;
+ case Format::R32_UINT: return VK_FORMAT_R32_UINT;
+
+ case Format::R16G16B16A16_UINT: return VK_FORMAT_R16G16B16A16_UINT;
+ case Format::R16G16_UINT: return VK_FORMAT_R16G16_UINT;
+ case Format::R16_UINT: return VK_FORMAT_R16_UINT;
+
+ case Format::R8G8B8A8_UINT: return VK_FORMAT_R8G8B8A8_UINT;
+ case Format::R8G8_UINT: return VK_FORMAT_R8G8_UINT;
+ case Format::R8_UINT: return VK_FORMAT_R8_UINT;
+
+ case Format::R64_SINT: return VK_FORMAT_R64_SINT;
+
+ case Format::R32G32B32A32_SINT: return VK_FORMAT_R32G32B32A32_SINT;
+ case Format::R32G32B32_SINT: return VK_FORMAT_R32G32B32_SINT;
+ case Format::R32G32_SINT: return VK_FORMAT_R32G32_SINT;
+ case Format::R32_SINT: return VK_FORMAT_R32_SINT;
+
+ case Format::R16G16B16A16_SINT: return VK_FORMAT_R16G16B16A16_SINT;
+ case Format::R16G16_SINT: return VK_FORMAT_R16G16_SINT;
+ case Format::R16_SINT: return VK_FORMAT_R16_SINT;
+
+ case Format::R8G8B8A8_SINT: return VK_FORMAT_R8G8B8A8_SINT;
+ case Format::R8G8_SINT: return VK_FORMAT_R8G8_SINT;
+ case Format::R8_SINT: return VK_FORMAT_R8_SINT;
+
+ case Format::R16G16B16A16_UNORM: return VK_FORMAT_R16G16B16A16_UNORM;
+ case Format::R16G16_UNORM: return VK_FORMAT_R16G16_UNORM;
+ case Format::R16_UNORM: return VK_FORMAT_R16_UNORM;
+
+ case Format::R8G8B8A8_UNORM: return VK_FORMAT_R8G8B8A8_UNORM;
+ case Format::R8G8B8A8_UNORM_SRGB: return VK_FORMAT_R8G8B8A8_SRGB;
+ case Format::R8G8_UNORM: return VK_FORMAT_R8G8_UNORM;
+ case Format::R8_UNORM: return VK_FORMAT_R8_UNORM;
+ case Format::B8G8R8A8_UNORM: return VK_FORMAT_B8G8R8A8_UNORM;
+ case Format::B8G8R8A8_UNORM_SRGB: return VK_FORMAT_B8G8R8A8_SRGB;
+ case Format::B8G8R8X8_UNORM: return VK_FORMAT_B8G8R8A8_UNORM;
+ case Format::B8G8R8X8_UNORM_SRGB: return VK_FORMAT_B8G8R8A8_SRGB;
+
+ case Format::R16G16B16A16_SNORM: return VK_FORMAT_R16G16B16A16_SNORM;
+ case Format::R16G16_SNORM: return VK_FORMAT_R16G16_SNORM;
+ case Format::R16_SNORM: return VK_FORMAT_R16_SNORM;
+
+ case Format::R8G8B8A8_SNORM: return VK_FORMAT_R8G8B8A8_SNORM;
+ case Format::R8G8_SNORM: return VK_FORMAT_R8G8_SNORM;
+ case Format::R8_SNORM: return VK_FORMAT_R8_SNORM;
+
+ case Format::D32_FLOAT: return VK_FORMAT_D32_SFLOAT;
+ case Format::D16_UNORM: return VK_FORMAT_D16_UNORM;
+ case Format::D32_FLOAT_S8_UINT: return VK_FORMAT_D32_SFLOAT_S8_UINT;
+ case Format::R32_FLOAT_X32_TYPELESS: return VK_FORMAT_R32_SFLOAT;
+
+ case Format::B4G4R4A4_UNORM: return VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT;
+ case Format::B5G6R5_UNORM: return VK_FORMAT_R5G6B5_UNORM_PACK16;
+ case Format::B5G5R5A1_UNORM: return VK_FORMAT_A1R5G5B5_UNORM_PACK16;
+
+ case Format::R9G9B9E5_SHAREDEXP: return VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
+ case Format::R10G10B10A2_TYPELESS: return VK_FORMAT_A2B10G10R10_UINT_PACK32;
+ case Format::R10G10B10A2_UINT: return VK_FORMAT_A2B10G10R10_UINT_PACK32;
+ case Format::R10G10B10A2_UNORM: return VK_FORMAT_A2B10G10R10_UNORM_PACK32;
+ case Format::R11G11B10_FLOAT: return VK_FORMAT_B10G11R11_UFLOAT_PACK32;
+
+ case Format::BC1_UNORM: return VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
+ case Format::BC1_UNORM_SRGB: return VK_FORMAT_BC1_RGBA_SRGB_BLOCK;
+ case Format::BC2_UNORM: return VK_FORMAT_BC2_UNORM_BLOCK;
+ case Format::BC2_UNORM_SRGB: return VK_FORMAT_BC2_SRGB_BLOCK;
+ case Format::BC3_UNORM: return VK_FORMAT_BC3_UNORM_BLOCK;
+ case Format::BC3_UNORM_SRGB: return VK_FORMAT_BC3_SRGB_BLOCK;
+ case Format::BC4_UNORM: return VK_FORMAT_BC4_UNORM_BLOCK;
+ case Format::BC4_SNORM: return VK_FORMAT_BC4_SNORM_BLOCK;
+ case Format::BC5_UNORM: return VK_FORMAT_BC5_UNORM_BLOCK;
+ case Format::BC5_SNORM: return VK_FORMAT_BC5_SNORM_BLOCK;
+ case Format::BC6H_UF16: return VK_FORMAT_BC6H_UFLOAT_BLOCK;
+ case Format::BC6H_SF16: return VK_FORMAT_BC6H_SFLOAT_BLOCK;
+ case Format::BC7_UNORM: return VK_FORMAT_BC7_UNORM_BLOCK;
+ case Format::BC7_UNORM_SRGB: return VK_FORMAT_BC7_SRGB_BLOCK;
+
+ default: return VK_FORMAT_UNDEFINED;
}
}
@@ -132,38 +134,26 @@ VkImageAspectFlags VulkanUtil::getAspectMask(TextureAspect aspect, VkFormat form
return VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
case VK_FORMAT_D16_UNORM:
case VK_FORMAT_D32_SFLOAT:
- case VK_FORMAT_X8_D24_UNORM_PACK32:
- return VK_IMAGE_ASPECT_DEPTH_BIT;
- case VK_FORMAT_S8_UINT:
- return VK_IMAGE_ASPECT_STENCIL_BIT;
- default:
- return VK_IMAGE_ASPECT_COLOR_BIT;
+ case VK_FORMAT_X8_D24_UNORM_PACK32: return VK_IMAGE_ASPECT_DEPTH_BIT;
+ case VK_FORMAT_S8_UINT: return VK_IMAGE_ASPECT_STENCIL_BIT;
+ default: return VK_IMAGE_ASPECT_COLOR_BIT;
}
- case TextureAspect::Color:
- return VK_IMAGE_ASPECT_COLOR_BIT;
- case TextureAspect::Depth:
- return VK_IMAGE_ASPECT_DEPTH_BIT;
+ case TextureAspect::Color: return VK_IMAGE_ASPECT_COLOR_BIT;
+ case TextureAspect::Depth: return VK_IMAGE_ASPECT_DEPTH_BIT;
case TextureAspect::DepthStencil:
return VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
- case TextureAspect::Stencil:
- return VK_IMAGE_ASPECT_STENCIL_BIT;
- case TextureAspect::Plane0:
- return VK_IMAGE_ASPECT_PLANE_0_BIT;
- case TextureAspect::Plane1:
- return VK_IMAGE_ASPECT_PLANE_1_BIT;
-
- case TextureAspect::Plane2:
- return VK_IMAGE_ASPECT_PLANE_2_BIT;
-
- case TextureAspect::MetaData:
- return VK_IMAGE_ASPECT_METADATA_BIT;
- default:
- SLANG_UNREACHABLE("getAspectMask");
- return 0;
+ case TextureAspect::Stencil: return VK_IMAGE_ASPECT_STENCIL_BIT;
+ case TextureAspect::Plane0: return VK_IMAGE_ASPECT_PLANE_0_BIT;
+ case TextureAspect::Plane1: return VK_IMAGE_ASPECT_PLANE_1_BIT;
+
+ case TextureAspect::Plane2: return VK_IMAGE_ASPECT_PLANE_2_BIT;
+
+ case TextureAspect::MetaData: return VK_IMAGE_ASPECT_METADATA_BIT;
+ default: SLANG_UNREACHABLE("getAspectMask"); return 0;
}
}
-/* static */SlangResult VulkanUtil::toSlangResult(VkResult res)
+/* static */ SlangResult VulkanUtil::toSlangResult(VkResult res)
{
return (res == VK_SUCCESS) ? SLANG_OK : SLANG_FAIL;
}
@@ -172,37 +162,21 @@ VkShaderStageFlags VulkanUtil::getShaderStage(SlangStage stage)
{
switch (stage)
{
- case SLANG_STAGE_ANY_HIT:
- return VK_SHADER_STAGE_ANY_HIT_BIT_KHR;
- case SLANG_STAGE_CALLABLE:
- return VK_SHADER_STAGE_CALLABLE_BIT_KHR;
- case SLANG_STAGE_CLOSEST_HIT:
- return VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR;
- case SLANG_STAGE_COMPUTE:
- return VK_SHADER_STAGE_COMPUTE_BIT;
- case SLANG_STAGE_DOMAIN:
- return VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
- case SLANG_STAGE_FRAGMENT:
- return VK_SHADER_STAGE_FRAGMENT_BIT;
- case SLANG_STAGE_GEOMETRY:
- return VK_SHADER_STAGE_GEOMETRY_BIT;
- case SLANG_STAGE_HULL:
- return VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
- case SLANG_STAGE_INTERSECTION:
- return VK_SHADER_STAGE_INTERSECTION_BIT_KHR;
- case SLANG_STAGE_MISS:
- return VK_SHADER_STAGE_MISS_BIT_KHR;
- case SLANG_STAGE_RAY_GENERATION:
- return VK_SHADER_STAGE_RAYGEN_BIT_KHR;
- case SLANG_STAGE_VERTEX:
- return VK_SHADER_STAGE_VERTEX_BIT;
- case SLANG_STAGE_MESH:
- return VK_SHADER_STAGE_MESH_BIT_EXT;
- case SLANG_STAGE_AMPLIFICATION:
- return VK_SHADER_STAGE_TASK_BIT_EXT;
- default:
- assert(!"unsupported stage.");
- return VkShaderStageFlags(-1);
+ case SLANG_STAGE_ANY_HIT: return VK_SHADER_STAGE_ANY_HIT_BIT_KHR;
+ case SLANG_STAGE_CALLABLE: return VK_SHADER_STAGE_CALLABLE_BIT_KHR;
+ case SLANG_STAGE_CLOSEST_HIT: return VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR;
+ case SLANG_STAGE_COMPUTE: return VK_SHADER_STAGE_COMPUTE_BIT;
+ case SLANG_STAGE_DOMAIN: return VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
+ case SLANG_STAGE_FRAGMENT: return VK_SHADER_STAGE_FRAGMENT_BIT;
+ case SLANG_STAGE_GEOMETRY: return VK_SHADER_STAGE_GEOMETRY_BIT;
+ case SLANG_STAGE_HULL: return VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
+ case SLANG_STAGE_INTERSECTION: return VK_SHADER_STAGE_INTERSECTION_BIT_KHR;
+ case SLANG_STAGE_MISS: return VK_SHADER_STAGE_MISS_BIT_KHR;
+ case SLANG_STAGE_RAY_GENERATION: return VK_SHADER_STAGE_RAYGEN_BIT_KHR;
+ case SLANG_STAGE_VERTEX: return VK_SHADER_STAGE_VERTEX_BIT;
+ case SLANG_STAGE_MESH: return VK_SHADER_STAGE_MESH_BIT_EXT;
+ case SLANG_STAGE_AMPLIFICATION: return VK_SHADER_STAGE_TASK_BIT_EXT;
+ default: assert(!"unsupported stage."); return VkShaderStageFlags(-1);
}
}
@@ -212,29 +186,18 @@ VkImageLayout VulkanUtil::getImageLayoutFromState(ResourceState state)
{
case ResourceState::ShaderResource:
case ResourceState::PixelShaderResource:
- case ResourceState::NonPixelShaderResource:
- return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+ case ResourceState::NonPixelShaderResource: return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
case ResourceState::UnorderedAccess:
- case ResourceState::General:
- return VK_IMAGE_LAYOUT_GENERAL;
- case ResourceState::Present:
- return VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
- case ResourceState::CopySource:
- return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
- case ResourceState::CopyDestination:
- return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
- case ResourceState::RenderTarget:
- return VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
- case ResourceState::DepthWrite:
- return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
- case ResourceState::DepthRead:
- return VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
- case ResourceState::ResolveSource:
- return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
- case ResourceState::ResolveDestination:
- return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
- default:
- return VK_IMAGE_LAYOUT_UNDEFINED;
+ case ResourceState::General: return VK_IMAGE_LAYOUT_GENERAL;
+ case ResourceState::Present: return VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
+ case ResourceState::CopySource: return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
+ case ResourceState::CopyDestination: return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
+ case ResourceState::RenderTarget: return VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+ case ResourceState::DepthWrite: return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+ case ResourceState::DepthRead: return VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
+ case ResourceState::ResolveSource: return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
+ case ResourceState::ResolveDestination: return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
+ default: return VK_IMAGE_LAYOUT_UNDEFINED;
}
return VkImageLayout();
}
@@ -243,23 +206,14 @@ VkSampleCountFlagBits VulkanUtil::translateSampleCount(uint32_t sampleCount)
{
switch (sampleCount)
{
- case 1:
- return VK_SAMPLE_COUNT_1_BIT;
- case 2:
- return VK_SAMPLE_COUNT_2_BIT;
- case 4:
- return VK_SAMPLE_COUNT_4_BIT;
- case 8:
- return VK_SAMPLE_COUNT_8_BIT;
- case 16:
- return VK_SAMPLE_COUNT_16_BIT;
- case 32:
- return VK_SAMPLE_COUNT_32_BIT;
- case 64:
- return VK_SAMPLE_COUNT_64_BIT;
- default:
- assert(!"Unsupported sample count");
- return VK_SAMPLE_COUNT_1_BIT;
+ case 1: return VK_SAMPLE_COUNT_1_BIT;
+ case 2: return VK_SAMPLE_COUNT_2_BIT;
+ case 4: return VK_SAMPLE_COUNT_4_BIT;
+ case 8: return VK_SAMPLE_COUNT_8_BIT;
+ case 16: return VK_SAMPLE_COUNT_16_BIT;
+ case 32: return VK_SAMPLE_COUNT_32_BIT;
+ case 64: return VK_SAMPLE_COUNT_64_BIT;
+ default: assert(!"Unsupported sample count"); return VK_SAMPLE_COUNT_1_BIT;
}
}
@@ -267,15 +221,10 @@ VkCullModeFlags VulkanUtil::translateCullMode(CullMode cullMode)
{
switch (cullMode)
{
- case CullMode::None:
- return VK_CULL_MODE_NONE;
- case CullMode::Front:
- return VK_CULL_MODE_FRONT_BIT;
- case CullMode::Back:
- return VK_CULL_MODE_BACK_BIT;
- default:
- assert(!"Unsupported cull mode");
- return VK_CULL_MODE_NONE;
+ case CullMode::None: return VK_CULL_MODE_NONE;
+ case CullMode::Front: return VK_CULL_MODE_FRONT_BIT;
+ case CullMode::Back: return VK_CULL_MODE_BACK_BIT;
+ default: assert(!"Unsupported cull mode"); return VK_CULL_MODE_NONE;
}
}
@@ -283,13 +232,9 @@ VkFrontFace VulkanUtil::translateFrontFaceMode(FrontFaceMode frontFaceMode)
{
switch (frontFaceMode)
{
- case FrontFaceMode::CounterClockwise:
- return VK_FRONT_FACE_COUNTER_CLOCKWISE;
- case FrontFaceMode::Clockwise:
- return VK_FRONT_FACE_CLOCKWISE;
- default:
- assert(!"Unsupported front face mode");
- return VK_FRONT_FACE_CLOCKWISE;
+ case FrontFaceMode::CounterClockwise: return VK_FRONT_FACE_COUNTER_CLOCKWISE;
+ case FrontFaceMode::Clockwise: return VK_FRONT_FACE_CLOCKWISE;
+ default: assert(!"Unsupported front face mode"); return VK_FRONT_FACE_CLOCKWISE;
}
}
@@ -297,13 +242,9 @@ VkPolygonMode VulkanUtil::translateFillMode(FillMode fillMode)
{
switch (fillMode)
{
- case FillMode::Solid:
- return VK_POLYGON_MODE_FILL;
- case FillMode::Wireframe:
- return VK_POLYGON_MODE_LINE;
- default:
- assert(!"Unsupported fill mode");
- return VK_POLYGON_MODE_FILL;
+ case FillMode::Solid: return VK_POLYGON_MODE_FILL;
+ case FillMode::Wireframe: return VK_POLYGON_MODE_LINE;
+ default: assert(!"Unsupported fill mode"); return VK_POLYGON_MODE_FILL;
}
}
@@ -311,44 +252,25 @@ VkBlendFactor VulkanUtil::translateBlendFactor(BlendFactor blendFactor)
{
switch (blendFactor)
{
- case BlendFactor::Zero:
- return VK_BLEND_FACTOR_ZERO;
- case BlendFactor::One:
- return VK_BLEND_FACTOR_ONE;
- case BlendFactor::SrcColor:
- return VK_BLEND_FACTOR_SRC_COLOR;
- case BlendFactor::InvSrcColor:
- return VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR;
- case BlendFactor::SrcAlpha:
- return VK_BLEND_FACTOR_SRC_ALPHA;
- case BlendFactor::InvSrcAlpha:
- return VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
- case BlendFactor::DestAlpha:
- return VK_BLEND_FACTOR_DST_ALPHA;
- case BlendFactor::InvDestAlpha:
- return VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
- case BlendFactor::DestColor:
- return VK_BLEND_FACTOR_DST_COLOR;
- case BlendFactor::InvDestColor:
- return VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
- case BlendFactor::SrcAlphaSaturate:
- return VK_BLEND_FACTOR_SRC_ALPHA_SATURATE;
- case BlendFactor::BlendColor:
- return VK_BLEND_FACTOR_CONSTANT_COLOR;
- case BlendFactor::InvBlendColor:
- return VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR;
- case BlendFactor::SecondarySrcColor:
- return VK_BLEND_FACTOR_SRC1_COLOR;
- case BlendFactor::InvSecondarySrcColor:
- return VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR;
- case BlendFactor::SecondarySrcAlpha:
- return VK_BLEND_FACTOR_SRC1_ALPHA;
- case BlendFactor::InvSecondarySrcAlpha:
- return VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA;
-
- default:
- assert(!"Unsupported blend factor");
- return VK_BLEND_FACTOR_ONE;
+ case BlendFactor::Zero: return VK_BLEND_FACTOR_ZERO;
+ case BlendFactor::One: return VK_BLEND_FACTOR_ONE;
+ case BlendFactor::SrcColor: return VK_BLEND_FACTOR_SRC_COLOR;
+ case BlendFactor::InvSrcColor: return VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR;
+ case BlendFactor::SrcAlpha: return VK_BLEND_FACTOR_SRC_ALPHA;
+ case BlendFactor::InvSrcAlpha: return VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
+ case BlendFactor::DestAlpha: return VK_BLEND_FACTOR_DST_ALPHA;
+ case BlendFactor::InvDestAlpha: return VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
+ case BlendFactor::DestColor: return VK_BLEND_FACTOR_DST_COLOR;
+ case BlendFactor::InvDestColor: return VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
+ case BlendFactor::SrcAlphaSaturate: return VK_BLEND_FACTOR_SRC_ALPHA_SATURATE;
+ case BlendFactor::BlendColor: return VK_BLEND_FACTOR_CONSTANT_COLOR;
+ case BlendFactor::InvBlendColor: return VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR;
+ case BlendFactor::SecondarySrcColor: return VK_BLEND_FACTOR_SRC1_COLOR;
+ case BlendFactor::InvSecondarySrcColor: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR;
+ case BlendFactor::SecondarySrcAlpha: return VK_BLEND_FACTOR_SRC1_ALPHA;
+ case BlendFactor::InvSecondarySrcAlpha: return VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA;
+
+ default: assert(!"Unsupported blend factor"); return VK_BLEND_FACTOR_ONE;
}
}
@@ -356,38 +278,24 @@ VkBlendOp VulkanUtil::translateBlendOp(BlendOp op)
{
switch (op)
{
- case BlendOp::Add:
- return VK_BLEND_OP_ADD;
- case BlendOp::Subtract:
- return VK_BLEND_OP_SUBTRACT;
- case BlendOp::ReverseSubtract:
- return VK_BLEND_OP_REVERSE_SUBTRACT;
- case BlendOp::Min:
- return VK_BLEND_OP_MIN;
- case BlendOp::Max:
- return VK_BLEND_OP_MAX;
- default:
- assert(!"Unsupported blend op");
- return VK_BLEND_OP_ADD;
+ case BlendOp::Add: return VK_BLEND_OP_ADD;
+ case BlendOp::Subtract: return VK_BLEND_OP_SUBTRACT;
+ case BlendOp::ReverseSubtract: return VK_BLEND_OP_REVERSE_SUBTRACT;
+ case BlendOp::Min: return VK_BLEND_OP_MIN;
+ case BlendOp::Max: return VK_BLEND_OP_MAX;
+ default: assert(!"Unsupported blend op"); return VK_BLEND_OP_ADD;
}
}
-VkPrimitiveTopology VulkanUtil::translatePrimitiveTypeToListTopology(
- PrimitiveType primitiveType)
+VkPrimitiveTopology VulkanUtil::translatePrimitiveTypeToListTopology(PrimitiveType primitiveType)
{
switch (primitiveType)
{
- case PrimitiveType::Point:
- return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
- case PrimitiveType::Line:
- return VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
- case PrimitiveType::Triangle:
- return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
- case PrimitiveType::Patch:
- return VK_PRIMITIVE_TOPOLOGY_PATCH_LIST;
- default:
- assert(!"unknown topology type.");
- return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+ case PrimitiveType::Point: return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
+ case PrimitiveType::Line: return VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
+ case PrimitiveType::Triangle: return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+ case PrimitiveType::Patch: return VK_PRIMITIVE_TOPOLOGY_PATCH_LIST;
+ default: assert(!"unknown topology type."); return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
}
}
@@ -395,24 +303,15 @@ VkStencilOp VulkanUtil::translateStencilOp(StencilOp op)
{
switch (op)
{
- case StencilOp::DecrementSaturate:
- return VK_STENCIL_OP_DECREMENT_AND_CLAMP;
- case StencilOp::DecrementWrap:
- return VK_STENCIL_OP_DECREMENT_AND_WRAP;
- case StencilOp::IncrementSaturate:
- return VK_STENCIL_OP_INCREMENT_AND_CLAMP;
- case StencilOp::IncrementWrap:
- return VK_STENCIL_OP_INCREMENT_AND_WRAP;
- case StencilOp::Invert:
- return VK_STENCIL_OP_INVERT;
- case StencilOp::Keep:
- return VK_STENCIL_OP_KEEP;
- case StencilOp::Replace:
- return VK_STENCIL_OP_REPLACE;
- case StencilOp::Zero:
- return VK_STENCIL_OP_ZERO;
- default:
- return VK_STENCIL_OP_KEEP;
+ case StencilOp::DecrementSaturate: return VK_STENCIL_OP_DECREMENT_AND_CLAMP;
+ case StencilOp::DecrementWrap: return VK_STENCIL_OP_DECREMENT_AND_WRAP;
+ case StencilOp::IncrementSaturate: return VK_STENCIL_OP_INCREMENT_AND_CLAMP;
+ case StencilOp::IncrementWrap: return VK_STENCIL_OP_INCREMENT_AND_WRAP;
+ case StencilOp::Invert: return VK_STENCIL_OP_INVERT;
+ case StencilOp::Keep: return VK_STENCIL_OP_KEEP;
+ case StencilOp::Replace: return VK_STENCIL_OP_REPLACE;
+ case StencilOp::Zero: return VK_STENCIL_OP_ZERO;
+ default: return VK_STENCIL_OP_KEEP;
}
}
@@ -420,12 +319,10 @@ VkFilter VulkanUtil::translateFilterMode(TextureFilteringMode mode)
{
switch (mode)
{
- default:
- return VkFilter(0);
+ default: return VkFilter(0);
-#define CASE(SRC, DST) \
- case TextureFilteringMode::SRC: \
- return VK_FILTER_##DST
+#define CASE(SRC, DST) \
+ case TextureFilteringMode::SRC: return VK_FILTER_##DST
CASE(Point, NEAREST);
CASE(Linear, LINEAR);
@@ -438,12 +335,10 @@ VkSamplerMipmapMode VulkanUtil::translateMipFilterMode(TextureFilteringMode mode
{
switch (mode)
{
- default:
- return VkSamplerMipmapMode(0);
+ default: return VkSamplerMipmapMode(0);
-#define CASE(SRC, DST) \
- case TextureFilteringMode::SRC: \
- return VK_SAMPLER_MIPMAP_MODE_##DST
+#define CASE(SRC, DST) \
+ case TextureFilteringMode::SRC: return VK_SAMPLER_MIPMAP_MODE_##DST
CASE(Point, NEAREST);
CASE(Linear, LINEAR);
@@ -456,12 +351,10 @@ VkSamplerAddressMode VulkanUtil::translateAddressingMode(TextureAddressingMode m
{
switch (mode)
{
- default:
- return VkSamplerAddressMode(0);
+ default: return VkSamplerAddressMode(0);
-#define CASE(SRC, DST) \
- case TextureAddressingMode::SRC: \
- return VK_SAMPLER_ADDRESS_MODE_##DST
+#define CASE(SRC, DST) \
+ case TextureAddressingMode::SRC: return VK_SAMPLER_ADDRESS_MODE_##DST
CASE(Wrap, REPEAT);
CASE(ClampToEdge, CLAMP_TO_EDGE);
@@ -481,9 +374,8 @@ VkCompareOp VulkanUtil::translateComparisonFunc(ComparisonFunc func)
// TODO: need to report failures
return VK_COMPARE_OP_ALWAYS;
-#define CASE(FROM, TO) \
- case ComparisonFunc::FROM: \
- return VK_COMPARE_OP_##TO
+#define CASE(FROM, TO) \
+ case ComparisonFunc::FROM: return VK_COMPARE_OP_##TO
CASE(Never, NEVER);
CASE(Less, LESS);
@@ -514,16 +406,13 @@ VkSamplerReductionMode VulkanUtil::translateReductionOp(TextureReductionOp op)
{
switch (op)
{
- case gfx::TextureReductionOp::Minimum:
- return VK_SAMPLER_REDUCTION_MODE_MIN;
- case gfx::TextureReductionOp::Maximum:
- return VK_SAMPLER_REDUCTION_MODE_MAX;
- default:
- return VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE;
+ case gfx::TextureReductionOp::Minimum: return VK_SAMPLER_REDUCTION_MODE_MIN;
+ case gfx::TextureReductionOp::Maximum: return VK_SAMPLER_REDUCTION_MODE_MAX;
+ default: return VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE;
}
}
-/* static */Slang::Result VulkanUtil::handleFail(VkResult res)
+/* static */ Slang::Result VulkanUtil::handleFail(VkResult res)
{
if (res != VK_SUCCESS)
{
@@ -532,29 +421,22 @@ VkSamplerReductionMode VulkanUtil::translateReductionOp(TextureReductionOp op)
return toSlangResult(res);
}
-/* static */void VulkanUtil::checkFail(VkResult res)
+/* static */ void VulkanUtil::checkFail(VkResult res)
{
assert(res != VK_SUCCESS);
assert(!"Vulkan check failed");
-
}
-/* static */VkPrimitiveTopology VulkanUtil::getVkPrimitiveTopology(PrimitiveTopology topology)
+/* static */ VkPrimitiveTopology VulkanUtil::getVkPrimitiveTopology(PrimitiveTopology topology)
{
switch (topology)
{
- case PrimitiveTopology::LineList:
- return VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
- case PrimitiveTopology::LineStrip:
- return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
- case PrimitiveTopology::TriangleList:
- return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
- case PrimitiveTopology::TriangleStrip:
- return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
- case PrimitiveTopology::PointList:
- return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
- default:
- break;
+ case PrimitiveTopology::LineList: return VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
+ case PrimitiveTopology::LineStrip: return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
+ case PrimitiveTopology::TriangleList: return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+ case PrimitiveTopology::TriangleStrip: return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+ case PrimitiveTopology::PointList: return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
+ default: break;
}
assert(!"Unknown topology");
return VK_PRIMITIVE_TOPOLOGY_MAX_ENUM;
@@ -564,32 +446,20 @@ VkImageLayout VulkanUtil::mapResourceStateToLayout(ResourceState state)
{
switch (state)
{
- case ResourceState::Undefined:
- return VK_IMAGE_LAYOUT_UNDEFINED;
+ case ResourceState::Undefined: return VK_IMAGE_LAYOUT_UNDEFINED;
case ResourceState::ShaderResource:
case ResourceState::PixelShaderResource:
- case ResourceState::NonPixelShaderResource:
- return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
- case ResourceState::UnorderedAccess:
- return VK_IMAGE_LAYOUT_GENERAL;
- case ResourceState::RenderTarget:
- return VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
- case ResourceState::DepthRead:
- return VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
- case ResourceState::DepthWrite:
- return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
- case ResourceState::Present:
- return VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
- case ResourceState::CopySource:
- return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
- case ResourceState::CopyDestination:
- return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
- case ResourceState::ResolveSource:
- return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
- case ResourceState::ResolveDestination:
- return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
- default:
- return VK_IMAGE_LAYOUT_UNDEFINED;
+ case ResourceState::NonPixelShaderResource: return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+ case ResourceState::UnorderedAccess: return VK_IMAGE_LAYOUT_GENERAL;
+ case ResourceState::RenderTarget: return VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+ case ResourceState::DepthRead: return VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
+ case ResourceState::DepthWrite: return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+ case ResourceState::Present: return VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
+ case ResourceState::CopySource: return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
+ case ResourceState::CopyDestination: return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
+ case ResourceState::ResolveSource: return VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
+ case ResourceState::ResolveDestination: return VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
+ default: return VK_IMAGE_LAYOUT_UNDEFINED;
}
}
@@ -676,12 +546,8 @@ Result AccelerationStructureBuildGeometryInfoBuilder::build(
vkGeomData.triangles.maxVertex = geomDesc.content.triangles.vertexCount - 1;
switch (geomDesc.content.triangles.indexFormat)
{
- case Format::R32_UINT:
- vkGeomData.triangles.indexType = VK_INDEX_TYPE_UINT32;
- break;
- case Format::R16_UINT:
- vkGeomData.triangles.indexType = VK_INDEX_TYPE_UINT16;
- break;
+ case Format::R32_UINT: vkGeomData.triangles.indexType = VK_INDEX_TYPE_UINT32; break;
+ case Format::R16_UINT: vkGeomData.triangles.indexType = VK_INDEX_TYPE_UINT16; break;
case Format::Unknown:
vkGeomData.triangles.indexType = VK_INDEX_TYPE_NONE_KHR;
break;