18 case TextureFormat::UINT_32_32_32_32:
19 case TextureFormat::UINT_32_32:
20 case TextureFormat::UINT_32:
21 case TextureFormat::UINT_16_16_16_16:
22 case TextureFormat::UINT_16_16:
23 case TextureFormat::UINT_16:
24 case TextureFormat::UINT_8_8_8_8:
25 case TextureFormat::UINT_8_8:
26 case TextureFormat::UINT_8:
27 case TextureFormat::SINT_32_32_32_32:
28 case TextureFormat::SINT_32_32:
29 case TextureFormat::SINT_32:
30 case TextureFormat::SINT_16_16_16_16:
31 case TextureFormat::SINT_16_16:
32 case TextureFormat::SINT_16:
33 case TextureFormat::SINT_8_8_8_8:
34 case TextureFormat::SINT_8_8:
35 case TextureFormat::SINT_8:
36 case TextureFormat::SFLOAT_32_32_32_32:
37 case TextureFormat::SFLOAT_32_32:
38 case TextureFormat::SFLOAT_32:
39 case TextureFormat::SFLOAT_16_16_16_16:
40 case TextureFormat::SFLOAT_16_16:
41 case TextureFormat::SFLOAT_16:
42 case TextureFormat::UNORM_16_16_16_16:
43 case TextureFormat::UNORM_16_16:
44 case TextureFormat::UNORM_16:
45 case TextureFormat::UNORM_8_8_8_8:
46 case TextureFormat::UNORM_8_8:
47 case TextureFormat::UNORM_8:
48 return VK_IMAGE_ASPECT_COLOR_BIT;
51 case TextureFormat::UNORM_10_10_10_2:
52 case TextureFormat::UINT_10_10_10_2:
53 case TextureFormat::UFLOAT_11_11_10:
54 case TextureFormat::SRGBA_8_8_8_8:
55 return VK_IMAGE_ASPECT_COLOR_BIT;
58 case TextureFormat::SFLOAT_32_DEPTH:
59 case TextureFormat::UNORM_16_DEPTH:
60 return VK_IMAGE_ASPECT_DEPTH_BIT;
62 case TextureFormat::SFLOAT_32_DEPTH_UINT_8:
63 return VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
66 case TextureFormat::UINT_32_32_32:
67 case TextureFormat::UINT_16_16_16:
68 case TextureFormat::UINT_8_8_8:
69 case TextureFormat::SINT_32_32_32:
70 case TextureFormat::SINT_16_16_16:
71 case TextureFormat::SINT_8_8_8:
72 case TextureFormat::UNORM_16_16_16:
73 case TextureFormat::UNORM_8_8_8:
74 case TextureFormat::SNORM_16_16_16_16:
75 case TextureFormat::SNORM_16_16_16:
76 case TextureFormat::SNORM_16_16:
77 case TextureFormat::SNORM_16:
78 case TextureFormat::SNORM_8_8_8_8:
79 case TextureFormat::SNORM_8_8_8:
80 case TextureFormat::SNORM_8_8:
81 case TextureFormat::SNORM_8:
82 case TextureFormat::SFLOAT_32_32_32:
83 case TextureFormat::SFLOAT_16_16_16:
84 return VK_IMAGE_ASPECT_COLOR_BIT;
87 case TextureFormat::SRGB_DXT1:
88 case TextureFormat::SRGB_DXT3:
89 case TextureFormat::SRGB_DXT5:
90 case TextureFormat::SNORM_DXT1:
91 case TextureFormat::SNORM_DXT3:
92 case TextureFormat::SNORM_DXT5:
93 case TextureFormat::SRGBA_8_8_8:
94 case TextureFormat::UFLOAT_9_9_9_EXP_5:
95 return VK_IMAGE_ASPECT_COLOR_BIT;
269 return VK_FORMAT_R8_SINT;
271 return VK_FORMAT_R8G8_SINT;
273 return VK_FORMAT_R8G8B8_SINT;
275 return VK_FORMAT_R8G8B8A8_SINT;
278 return VK_FORMAT_R8_SINT;
285 return VK_FORMAT_R8_UINT;
287 return VK_FORMAT_R8G8_UINT;
289 return VK_FORMAT_R8G8B8_UINT;
291 return VK_FORMAT_R8G8B8A8_UINT;
294 return VK_FORMAT_R8_UINT;
301 return VK_FORMAT_R16_SINT;
303 return VK_FORMAT_R16G16_SINT;
305 return VK_FORMAT_R16G16B16_SINT;
307 return VK_FORMAT_R16G16B16A16_SINT;
310 return VK_FORMAT_R16_SINT;
317 return VK_FORMAT_R16_UINT;
319 return VK_FORMAT_R16G16_UINT;
321 return VK_FORMAT_R16G16B16_UINT;
323 return VK_FORMAT_R16G16B16A16_UINT;
326 return VK_FORMAT_R16_UINT;
333 return VK_FORMAT_R32_SINT;
335 return VK_FORMAT_R32G32_SINT;
337 return VK_FORMAT_R32G32B32_SINT;
339 return VK_FORMAT_R32G32B32A32_SINT;
342 return VK_FORMAT_R32_SINT;
349 return VK_FORMAT_R32_UINT;
351 return VK_FORMAT_R32G32_UINT;
353 return VK_FORMAT_R32G32B32_UINT;
355 return VK_FORMAT_R32G32B32A32_UINT;
358 return VK_FORMAT_R32_UINT;
365 return VK_FORMAT_R32_SINT;
367 return VK_FORMAT_R32G32_SINT;
369 return VK_FORMAT_R32G32B32_SINT;
371 return VK_FORMAT_R32G32B32A32_SINT;
374 return VK_FORMAT_R32_SINT;
380 return VK_FORMAT_A2B10G10R10_SINT_PACK32;
387 return VK_FORMAT_R32_SFLOAT;
508 VkImageViewType
result = VK_IMAGE_VIEW_TYPE_1D;
513 result = VK_IMAGE_VIEW_TYPE_1D;
516 result = VK_IMAGE_VIEW_TYPE_2D;
519 result = VK_IMAGE_VIEW_TYPE_3D;
523 VK_IMAGE_VIEW_TYPE_CUBE;
526 result = VK_IMAGE_VIEW_TYPE_1D_ARRAY;
529 result = VK_IMAGE_VIEW_TYPE_2D_ARRAY;
533 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY;
542 if (
result == VK_IMAGE_VIEW_TYPE_1D_ARRAY) {
543 result = VK_IMAGE_VIEW_TYPE_1D;
545 else if (
result == VK_IMAGE_VIEW_TYPE_2D_ARRAY) {
546 result = VK_IMAGE_VIEW_TYPE_2D;
548 else if (
result == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY) {
549 result = VK_IMAGE_VIEW_TYPE_CUBE;
553 if (
result == VK_IMAGE_VIEW_TYPE_1D) {
554 result = VK_IMAGE_VIEW_TYPE_1D_ARRAY;
556 else if (
result == VK_IMAGE_VIEW_TYPE_2D) {
557 result = VK_IMAGE_VIEW_TYPE_2D_ARRAY;
559 else if (
result == VK_IMAGE_VIEW_TYPE_CUBE) {
560 result = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY;
651 return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
653 return VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
655 return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
657 return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
659 return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
661 return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
663 return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN;
665 return VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY;
667 return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY;
669 return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY;
676 return VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
712 switch (image_type) {
713 case shader::ImageType::Float1D:
714 case shader::ImageType::Float1DArray:
715 case shader::ImageType::Float2D:
716 case shader::ImageType::Float2DArray:
717 case shader::ImageType::Float3D:
718 case shader::ImageType::FloatCube:
719 case shader::ImageType::FloatCubeArray:
720 case shader::ImageType::Int1D:
721 case shader::ImageType::Int1DArray:
722 case shader::ImageType::Int2D:
723 case shader::ImageType::Int2DArray:
724 case shader::ImageType::Int3D:
725 case shader::ImageType::IntCube:
726 case shader::ImageType::IntCubeArray:
727 case shader::ImageType::AtomicInt2D:
728 case shader::ImageType::AtomicInt2DArray:
729 case shader::ImageType::AtomicInt3D:
730 case shader::ImageType::Uint1D:
731 case shader::ImageType::Uint1DArray:
732 case shader::ImageType::Uint2D:
733 case shader::ImageType::Uint2DArray:
734 case shader::ImageType::Uint3D:
735 case shader::ImageType::UintCube:
736 case shader::ImageType::UintCubeArray:
737 case shader::ImageType::AtomicUint2D:
738 case shader::ImageType::AtomicUint2DArray:
739 case shader::ImageType::AtomicUint3D:
740 return VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
742 case shader::ImageType::FloatBuffer:
743 case shader::ImageType::IntBuffer:
744 case shader::ImageType::UintBuffer:
745 return VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
751 return VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
756 switch (image_type) {
758 case shader::ImageType::Float1D:
759 case shader::ImageType::Float1DArray:
760 case shader::ImageType::Float2D:
761 case shader::ImageType::Float2DArray:
762 case shader::ImageType::Float3D:
763 case shader::ImageType::FloatCube:
764 case shader::ImageType::FloatCubeArray:
765 case shader::ImageType::Int1D:
766 case shader::ImageType::Int1DArray:
767 case shader::ImageType::Int2D:
768 case shader::ImageType::Int2DArray:
769 case shader::ImageType::Int3D:
770 case shader::ImageType::IntCube:
771 case shader::ImageType::IntCubeArray:
772 case shader::ImageType::AtomicInt2D:
773 case shader::ImageType::AtomicInt2DArray:
774 case shader::ImageType::AtomicInt3D:
775 case shader::ImageType::Uint1D:
776 case shader::ImageType::Uint1DArray:
777 case shader::ImageType::Uint2D:
778 case shader::ImageType::Uint2DArray:
779 case shader::ImageType::Uint3D:
780 case shader::ImageType::UintCube:
781 case shader::ImageType::UintCubeArray:
782 case shader::ImageType::AtomicUint2D:
783 case shader::ImageType::AtomicUint2DArray:
784 case shader::ImageType::AtomicUint3D:
785 case shader::ImageType::Shadow2D:
786 case shader::ImageType::Shadow2DArray:
787 case shader::ImageType::ShadowCube:
788 case shader::ImageType::ShadowCubeArray:
789 case shader::ImageType::Depth2D:
790 case shader::ImageType::Depth2DArray:
791 case shader::ImageType::DepthCube:
792 case shader::ImageType::DepthCubeArray:
793 return VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
795 case shader::ImageType::FloatBuffer:
796 case shader::ImageType::IntBuffer:
797 case shader::ImageType::UintBuffer:
798 return VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
801 return VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
#define GPU_TEXTURE_FORMAT_EXPAND(impl)
@ GPU_DATA_UINT_24_8_DEPRECATED
@ GPU_DATA_2_10_10_10_REV
@ GPU_SAMPLER_EXTEND_MODE_MIRRORED_REPEAT
@ GPU_SAMPLER_EXTEND_MODE_REPEAT
@ GPU_SAMPLER_EXTEND_MODE_EXTEND
@ GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER