vxr

package module
v0.0.0-...-618a57a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2025 License: Apache-2.0 Imports: 26 Imported by: 0

README

VXR

VXR is a Vulkan only graphics abstraction library closer to a Render Hardware Interface but not quite. The goals are to reduce the boilerplate and verboseness of Vulkan and create an API targeted towards indie game development. What this means is that doing things the most efficient way is less important than doing things good enough but with a nicer API.

Implementing all of Vulkan is a non goal but we do plan on having API to retrieve Vulkan objects to let users do whatever they want.

Design choices

  • No binary semaphore or fences
    • Timeline semaphores basically supersede these, the only exception is vkAcquireNextImageKHR and vkQueuePresentKHR which we have special cased.
  • No manual vkDescriptorSetLayout creation
    • We use shader reflection to determine the layout and if descriptorCount is > 1 we pass VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT | VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT.
  • Graphics Pipeline Library
    • We use VK_EXT_graphics_pipeline_library to allow more dynamic pipeline creation while keeping the benefits of a vkPipeline such as driver optimizations which VK_EXT_shader_object may not have access to.
  • Dynamic Rendering
    • We use VK_KHR_dynamic_rendering as it removes bookkeeping of vkRenderPass and vkFramebuffer objects and simplifies the API.
  • VK_EXT_surface_maintenance1/VK_EXT_swapchain_maintenance1
    • The spec has a long standing issue of surface/swapchain resizing being technically undefined behavior, we require these extensions so we do not have to deal with it.

API Stability

We consider VXR to be in "request for comments" mode, this means that the API can and will change but hopefully breaking changes will be few and far between.

Supported Platforms

VXR is known to work on Windows 10 and Ubuntu 24.04. However MSVC is not supported as Go doesn't support it so Windows builds must use mingw-w64.

We do not currently have plans for Android/Apple.

Hardware Requirements

VXR is designed for Vulkan 1.3+ devices with the entire list of features and extensions used in config.go

Setup

VXR is go get able however it is not trivially go build able. What this means is that there are extra steps required before doing a go build. VXR follows the make program pattern goARRG uses which involves creating a /cmd/make folder and writing a go program. An example of that that looks like can be found in the examples repository. https://github.com/goarrg/examples/tree/main/vxrhelloworld/cmd/make

The vxrhelloworld folder is also self contained.

To create a new project from it:

  • Copy paste the folder somewhere
  • Open the terminal and cd to it
  • Run go mod init example.com/repository-name
  • Followed by a go mod tidy
  • After which you can go run ./cmd/make to build
    • Assuming you already installed Go, GCC/Clang and all the other things listed on the main repo.

TODO

  • Async Compute/Transfer API
  • API to retrieve Vulkan handles for advanced usage
  • Testing system and infrastructure
  • Figure out a better map key for caches
  • Multiview?

Documentation

Index

Constants

View Source
const (
	MinAPI uint32 = C.VXR_VK_MIN_API
	MaxAPI uint32 = C.VXR_VK_MAX_API
)
View Source
const (
	FORMAT_R4G4_UNORM_PACK8                           Format             = 1
	FORMAT_R4G4B4A4_UNORM_PACK16                      Format             = 2
	FORMAT_B4G4R4A4_UNORM_PACK16                      Format             = 3
	FORMAT_R5G6B5_UNORM_PACK16                        Format             = 4
	FORMAT_B5G6R5_UNORM_PACK16                        Format             = 5
	FORMAT_R5G5B5A1_UNORM_PACK16                      Format             = 6
	FORMAT_B5G5R5A1_UNORM_PACK16                      Format             = 7
	FORMAT_A1R5G5B5_UNORM_PACK16                      Format             = 8
	FORMAT_R8_UNORM                                   Format             = 9
	FORMAT_R8_SNORM                                   Format             = 10
	FORMAT_R8_USCALED                                 Format             = 11
	FORMAT_R8_SSCALED                                 Format             = 12
	FORMAT_R8_UINT                                    Format             = 13
	FORMAT_R8_SINT                                    Format             = 14
	FORMAT_R8_SRGB                                    Format             = 15
	FORMAT_R8G8_UNORM                                 Format             = 16
	FORMAT_R8G8_SNORM                                 Format             = 17
	FORMAT_R8G8_USCALED                               Format             = 18
	FORMAT_R8G8_SSCALED                               Format             = 19
	FORMAT_R8G8_UINT                                  Format             = 20
	FORMAT_R8G8_SINT                                  Format             = 21
	FORMAT_R8G8_SRGB                                  Format             = 22
	FORMAT_R8G8B8_UNORM                               Format             = 23
	FORMAT_R8G8B8_SNORM                               Format             = 24
	FORMAT_R8G8B8_USCALED                             Format             = 25
	FORMAT_R8G8B8_SSCALED                             Format             = 26
	FORMAT_R8G8B8_UINT                                Format             = 27
	FORMAT_R8G8B8_SINT                                Format             = 28
	FORMAT_R8G8B8_SRGB                                Format             = 29
	FORMAT_B8G8R8_UNORM                               Format             = 30
	FORMAT_B8G8R8_SNORM                               Format             = 31
	FORMAT_B8G8R8_USCALED                             Format             = 32
	FORMAT_B8G8R8_SSCALED                             Format             = 33
	FORMAT_B8G8R8_UINT                                Format             = 34
	FORMAT_B8G8R8_SINT                                Format             = 35
	FORMAT_B8G8R8_SRGB                                Format             = 36
	FORMAT_R8G8B8A8_UNORM                             Format             = 37
	FORMAT_R8G8B8A8_SNORM                             Format             = 38
	FORMAT_R8G8B8A8_USCALED                           Format             = 39
	FORMAT_R8G8B8A8_SSCALED                           Format             = 40
	FORMAT_R8G8B8A8_UINT                              Format             = 41
	FORMAT_R8G8B8A8_SINT                              Format             = 42
	FORMAT_R8G8B8A8_SRGB                              Format             = 43
	FORMAT_B8G8R8A8_UNORM                             Format             = 44
	FORMAT_B8G8R8A8_SNORM                             Format             = 45
	FORMAT_B8G8R8A8_USCALED                           Format             = 46
	FORMAT_B8G8R8A8_SSCALED                           Format             = 47
	FORMAT_B8G8R8A8_UINT                              Format             = 48
	FORMAT_B8G8R8A8_SINT                              Format             = 49
	FORMAT_B8G8R8A8_SRGB                              Format             = 50
	FORMAT_A8B8G8R8_UNORM_PACK32                      Format             = 51
	FORMAT_A8B8G8R8_SNORM_PACK32                      Format             = 52
	FORMAT_A8B8G8R8_USCALED_PACK32                    Format             = 53
	FORMAT_A8B8G8R8_SSCALED_PACK32                    Format             = 54
	FORMAT_A8B8G8R8_UINT_PACK32                       Format             = 55
	FORMAT_A8B8G8R8_SINT_PACK32                       Format             = 56
	FORMAT_A8B8G8R8_SRGB_PACK32                       Format             = 57
	FORMAT_A2R10G10B10_UNORM_PACK32                   Format             = 58
	FORMAT_A2R10G10B10_SNORM_PACK32                   Format             = 59
	FORMAT_A2R10G10B10_USCALED_PACK32                 Format             = 60
	FORMAT_A2R10G10B10_SSCALED_PACK32                 Format             = 61
	FORMAT_A2R10G10B10_UINT_PACK32                    Format             = 62
	FORMAT_A2R10G10B10_SINT_PACK32                    Format             = 63
	FORMAT_A2B10G10R10_UNORM_PACK32                   Format             = 64
	FORMAT_A2B10G10R10_SNORM_PACK32                   Format             = 65
	FORMAT_A2B10G10R10_USCALED_PACK32                 Format             = 66
	FORMAT_A2B10G10R10_SSCALED_PACK32                 Format             = 67
	FORMAT_A2B10G10R10_UINT_PACK32                    Format             = 68
	FORMAT_A2B10G10R10_SINT_PACK32                    Format             = 69
	FORMAT_R16_UNORM                                  Format             = 70
	FORMAT_R16_SNORM                                  Format             = 71
	FORMAT_R16_USCALED                                Format             = 72
	FORMAT_R16_SSCALED                                Format             = 73
	FORMAT_R16_UINT                                   Format             = 74
	FORMAT_R16_SINT                                   Format             = 75
	FORMAT_R16_SFLOAT                                 Format             = 76
	FORMAT_R16G16_UNORM                               Format             = 77
	FORMAT_R16G16_SNORM                               Format             = 78
	FORMAT_R16G16_USCALED                             Format             = 79
	FORMAT_R16G16_SSCALED                             Format             = 80
	FORMAT_R16G16_UINT                                Format             = 81
	FORMAT_R16G16_SINT                                Format             = 82
	FORMAT_R16G16_SFLOAT                              Format             = 83
	FORMAT_R16G16B16_UNORM                            Format             = 84
	FORMAT_R16G16B16_SNORM                            Format             = 85
	FORMAT_R16G16B16_USCALED                          Format             = 86
	FORMAT_R16G16B16_SSCALED                          Format             = 87
	FORMAT_R16G16B16_UINT                             Format             = 88
	FORMAT_R16G16B16_SINT                             Format             = 89
	FORMAT_R16G16B16_SFLOAT                           Format             = 90
	FORMAT_R16G16B16A16_UNORM                         Format             = 91
	FORMAT_R16G16B16A16_SNORM                         Format             = 92
	FORMAT_R16G16B16A16_USCALED                       Format             = 93
	FORMAT_R16G16B16A16_SSCALED                       Format             = 94
	FORMAT_R16G16B16A16_UINT                          Format             = 95
	FORMAT_R16G16B16A16_SINT                          Format             = 96
	FORMAT_R16G16B16A16_SFLOAT                        Format             = 97
	FORMAT_R32_UINT                                   Format             = 98
	FORMAT_R32_SINT                                   Format             = 99
	FORMAT_R32_SFLOAT                                 Format             = 100
	FORMAT_R32G32_UINT                                Format             = 101
	FORMAT_R32G32_SINT                                Format             = 102
	FORMAT_R32G32_SFLOAT                              Format             = 103
	FORMAT_R32G32B32_UINT                             Format             = 104
	FORMAT_R32G32B32_SINT                             Format             = 105
	FORMAT_R32G32B32_SFLOAT                           Format             = 106
	FORMAT_R32G32B32A32_UINT                          Format             = 107
	FORMAT_R32G32B32A32_SINT                          Format             = 108
	FORMAT_R32G32B32A32_SFLOAT                        Format             = 109
	FORMAT_R64_UINT                                   Format             = 110
	FORMAT_R64_SINT                                   Format             = 111
	FORMAT_R64_SFLOAT                                 Format             = 112
	FORMAT_R64G64_UINT                                Format             = 113
	FORMAT_R64G64_SINT                                Format             = 114
	FORMAT_R64G64_SFLOAT                              Format             = 115
	FORMAT_R64G64B64_UINT                             Format             = 116
	FORMAT_R64G64B64_SINT                             Format             = 117
	FORMAT_R64G64B64_SFLOAT                           Format             = 118
	FORMAT_R64G64B64A64_UINT                          Format             = 119
	FORMAT_R64G64B64A64_SINT                          Format             = 120
	FORMAT_R64G64B64A64_SFLOAT                        Format             = 121
	FORMAT_B10G11R11_UFLOAT_PACK32                    Format             = 122
	FORMAT_E5B9G9R9_UFLOAT_PACK32                     Format             = 123
	DEPTH_STENCIL_FORMAT_D16_UNORM                    DepthStencilFormat = 124
	DEPTH_STENCIL_FORMAT_X8_D24_UNORM_PACK32          DepthStencilFormat = 125
	DEPTH_STENCIL_FORMAT_D32_SFLOAT                   DepthStencilFormat = 126
	DEPTH_STENCIL_FORMAT_S8_UINT                      DepthStencilFormat = 127
	DEPTH_STENCIL_FORMAT_D16_UNORM_S8_UINT            DepthStencilFormat = 128
	DEPTH_STENCIL_FORMAT_D24_UNORM_S8_UINT            DepthStencilFormat = 129
	DEPTH_STENCIL_FORMAT_D32_SFLOAT_S8_UINT           DepthStencilFormat = 130
	FORMAT_BC1_RGB_UNORM_BLOCK                        Format             = 131
	FORMAT_BC1_RGB_SRGB_BLOCK                         Format             = 132
	FORMAT_BC1_RGBA_UNORM_BLOCK                       Format             = 133
	FORMAT_BC1_RGBA_SRGB_BLOCK                        Format             = 134
	FORMAT_BC2_UNORM_BLOCK                            Format             = 135
	FORMAT_BC2_SRGB_BLOCK                             Format             = 136
	FORMAT_BC3_UNORM_BLOCK                            Format             = 137
	FORMAT_BC3_SRGB_BLOCK                             Format             = 138
	FORMAT_BC4_UNORM_BLOCK                            Format             = 139
	FORMAT_BC4_SNORM_BLOCK                            Format             = 140
	FORMAT_BC5_UNORM_BLOCK                            Format             = 141
	FORMAT_BC5_SNORM_BLOCK                            Format             = 142
	FORMAT_BC6H_UFLOAT_BLOCK                          Format             = 143
	FORMAT_BC6H_SFLOAT_BLOCK                          Format             = 144
	FORMAT_BC7_UNORM_BLOCK                            Format             = 145
	FORMAT_BC7_SRGB_BLOCK                             Format             = 146
	FORMAT_ETC2_R8G8B8_UNORM_BLOCK                    Format             = 147
	FORMAT_ETC2_R8G8B8_SRGB_BLOCK                     Format             = 148
	FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                  Format             = 149
	FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                   Format             = 150
	FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                  Format             = 151
	FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                   Format             = 152
	FORMAT_EAC_R11_UNORM_BLOCK                        Format             = 153
	FORMAT_EAC_R11_SNORM_BLOCK                        Format             = 154
	FORMAT_EAC_R11G11_UNORM_BLOCK                     Format             = 155
	FORMAT_EAC_R11G11_SNORM_BLOCK                     Format             = 156
	FORMAT_ASTC_4x4_UNORM_BLOCK                       Format             = 157
	FORMAT_ASTC_4x4_SRGB_BLOCK                        Format             = 158
	FORMAT_ASTC_5x4_UNORM_BLOCK                       Format             = 159
	FORMAT_ASTC_5x4_SRGB_BLOCK                        Format             = 160
	FORMAT_ASTC_5x5_UNORM_BLOCK                       Format             = 161
	FORMAT_ASTC_5x5_SRGB_BLOCK                        Format             = 162
	FORMAT_ASTC_6x5_UNORM_BLOCK                       Format             = 163
	FORMAT_ASTC_6x5_SRGB_BLOCK                        Format             = 164
	FORMAT_ASTC_6x6_UNORM_BLOCK                       Format             = 165
	FORMAT_ASTC_6x6_SRGB_BLOCK                        Format             = 166
	FORMAT_ASTC_8x5_UNORM_BLOCK                       Format             = 167
	FORMAT_ASTC_8x5_SRGB_BLOCK                        Format             = 168
	FORMAT_ASTC_8x6_UNORM_BLOCK                       Format             = 169
	FORMAT_ASTC_8x6_SRGB_BLOCK                        Format             = 170
	FORMAT_ASTC_8x8_UNORM_BLOCK                       Format             = 171
	FORMAT_ASTC_8x8_SRGB_BLOCK                        Format             = 172
	FORMAT_ASTC_10x5_UNORM_BLOCK                      Format             = 173
	FORMAT_ASTC_10x5_SRGB_BLOCK                       Format             = 174
	FORMAT_ASTC_10x6_UNORM_BLOCK                      Format             = 175
	FORMAT_ASTC_10x6_SRGB_BLOCK                       Format             = 176
	FORMAT_ASTC_10x8_UNORM_BLOCK                      Format             = 177
	FORMAT_ASTC_10x8_SRGB_BLOCK                       Format             = 178
	FORMAT_ASTC_10x10_UNORM_BLOCK                     Format             = 179
	FORMAT_ASTC_10x10_SRGB_BLOCK                      Format             = 180
	FORMAT_ASTC_12x10_UNORM_BLOCK                     Format             = 181
	FORMAT_ASTC_12x10_SRGB_BLOCK                      Format             = 182
	FORMAT_ASTC_12x12_UNORM_BLOCK                     Format             = 183
	FORMAT_ASTC_12x12_SRGB_BLOCK                      Format             = 184
	FORMAT_G8B8G8R8_422_UNORM                         Format             = 1000156000
	FORMAT_B8G8R8G8_422_UNORM                         Format             = 1000156001
	FORMAT_R10X6_UNORM_PACK16                         Format             = 1000156007
	FORMAT_R10X6G10X6_UNORM_2PACK16                   Format             = 1000156008
	FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16         Format             = 1000156009
	FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16     Format             = 1000156010
	FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16     Format             = 1000156011
	FORMAT_R12X4_UNORM_PACK16                         Format             = 1000156017
	FORMAT_R12X4G12X4_UNORM_2PACK16                   Format             = 1000156018
	FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16         Format             = 1000156019
	FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16     Format             = 1000156020
	FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16     Format             = 1000156021
	FORMAT_G16B16G16R16_422_UNORM                     Format             = 1000156027
	FORMAT_B16G16R16G16_422_UNORM                     Format             = 1000156028
	FORMAT_A4R4G4B4_UNORM_PACK16                      Format             = 1000340000
	FORMAT_A4B4G4R4_UNORM_PACK16                      Format             = 1000340001
	FORMAT_ASTC_4x4_SFLOAT_BLOCK                      Format             = 1000066000
	FORMAT_ASTC_5x4_SFLOAT_BLOCK                      Format             = 1000066001
	FORMAT_ASTC_5x5_SFLOAT_BLOCK                      Format             = 1000066002
	FORMAT_ASTC_6x5_SFLOAT_BLOCK                      Format             = 1000066003
	FORMAT_ASTC_6x6_SFLOAT_BLOCK                      Format             = 1000066004
	FORMAT_ASTC_8x5_SFLOAT_BLOCK                      Format             = 1000066005
	FORMAT_ASTC_8x6_SFLOAT_BLOCK                      Format             = 1000066006
	FORMAT_ASTC_8x8_SFLOAT_BLOCK                      Format             = 1000066007
	FORMAT_ASTC_10x5_SFLOAT_BLOCK                     Format             = 1000066008
	FORMAT_ASTC_10x6_SFLOAT_BLOCK                     Format             = 1000066009
	FORMAT_ASTC_10x8_SFLOAT_BLOCK                     Format             = 1000066010
	FORMAT_ASTC_10x10_SFLOAT_BLOCK                    Format             = 1000066011
	FORMAT_ASTC_12x10_SFLOAT_BLOCK                    Format             = 1000066012
	FORMAT_ASTC_12x12_SFLOAT_BLOCK                    Format             = 1000066013
	FORMAT_A1B5G5R5_UNORM_PACK16                      Format             = 1000470000
	FORMAT_A8_UNORM                                   Format             = 1000470001
	FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG                Format             = 1000054000
	FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                Format             = 1000054001
	FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                Format             = 1000054002
	FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG                Format             = 1000054003
	FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG                 Format             = 1000054004
	FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG                 Format             = 1000054005
	FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG                 Format             = 1000054006
	FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG                 Format             = 1000054007
	FORMAT_R16G16_SFIXED5_NV                          Format             = 1000464000
	FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_4x4_SFLOAT_BLOCK
	FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_5x4_SFLOAT_BLOCK
	FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_5x5_SFLOAT_BLOCK
	FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_6x5_SFLOAT_BLOCK
	FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_6x6_SFLOAT_BLOCK
	FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_8x5_SFLOAT_BLOCK
	FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_8x6_SFLOAT_BLOCK
	FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT                  Format             = FORMAT_ASTC_8x8_SFLOAT_BLOCK
	FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT                 Format             = FORMAT_ASTC_10x5_SFLOAT_BLOCK
	FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT                 Format             = FORMAT_ASTC_10x6_SFLOAT_BLOCK
	FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT                 Format             = FORMAT_ASTC_10x8_SFLOAT_BLOCK
	FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT                Format             = FORMAT_ASTC_10x10_SFLOAT_BLOCK
	FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT                Format             = FORMAT_ASTC_12x10_SFLOAT_BLOCK
	FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT                Format             = FORMAT_ASTC_12x12_SFLOAT_BLOCK
	FORMAT_G8B8G8R8_422_UNORM_KHR                     Format             = FORMAT_G8B8G8R8_422_UNORM
	FORMAT_B8G8R8G8_422_UNORM_KHR                     Format             = FORMAT_B8G8R8G8_422_UNORM
	FORMAT_R10X6_UNORM_PACK16_KHR                     Format             = FORMAT_R10X6_UNORM_PACK16
	FORMAT_R10X6G10X6_UNORM_2PACK16_KHR               Format             = FORMAT_R10X6G10X6_UNORM_2PACK16
	FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR     Format             = FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
	FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR Format             = FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
	FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR Format             = FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
	FORMAT_R12X4_UNORM_PACK16_KHR                     Format             = FORMAT_R12X4_UNORM_PACK16
	FORMAT_R12X4G12X4_UNORM_2PACK16_KHR               Format             = FORMAT_R12X4G12X4_UNORM_2PACK16
	FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR     Format             = FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
	FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR Format             = FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
	FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR Format             = FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
	FORMAT_G16B16G16R16_422_UNORM_KHR                 Format             = FORMAT_G16B16G16R16_422_UNORM
	FORMAT_B16G16R16G16_422_UNORM_KHR                 Format             = FORMAT_B16G16R16G16_422_UNORM
	FORMAT_A4R4G4B4_UNORM_PACK16_EXT                  Format             = FORMAT_A4R4G4B4_UNORM_PACK16
	FORMAT_A4B4G4R4_UNORM_PACK16_EXT                  Format             = FORMAT_A4B4G4R4_UNORM_PACK16
	FORMAT_R16G16_S10_5_NV                            Format             = FORMAT_R16G16_SFIXED5_NV
	FORMAT_A1B5G5R5_UNORM_PACK16_KHR                  Format             = FORMAT_A1B5G5R5_UNORM_PACK16
	FORMAT_A8_UNORM_KHR                               Format             = FORMAT_A8_UNORM
	FORMAT_MAX_ENUM                                   Format             = 0x7FFFFFFF
)

Variables

This section is empty.

Functions

func CompileShader

func CompileShader(fs *asset.FileSystem, name string) (*Shader, *ShaderLayout, *ShaderMetadata)

func Destroy

func Destroy()

func InitDevice

func InitDevice(config Config)

func InitInstance

func InitInstance(platform goarrg.PlatformInterface, vkInstance goarrg.VkInstance)

func LookupVkPhysicalDeviceFromUUID

func LookupVkPhysicalDeviceFromUUID(uuid UUID) (uintptr, error)

Searches for and returns a VkPhysicalDevice with a matching UUID or error if none found. The input UUID must have come from Properties.UUID as the UUID is non standard and may not have been provided by a vulkan function call.

func Resize

func Resize(w int, h int)

func SetLogLevel

func SetLogLevel(l uint32)

func VkConfig

func VkConfig() goarrg.VkConfig

Types

type AccessFlags

type AccessFlags C.VkAccessFlags2
const (
	AccessFlagNone        AccessFlags = vk.ACCESS_2_NONE
	AccessFlagMemoryRead  AccessFlags = vk.ACCESS_2_MEMORY_READ_BIT
	AccessFlagMemoryWrite AccessFlags = vk.ACCESS_2_MEMORY_WRITE_BIT
)

type BlendEquation

type BlendEquation struct {
	Src BlendFactor
	Dst BlendFactor
	Op  BlendOp
}

type BlendFactor

type BlendFactor C.VkBlendFactor
const (
	BLEND_FACTOR_ZERO                     BlendFactor = 0
	BLEND_FACTOR_ONE                      BlendFactor = 1
	BLEND_FACTOR_SRC_COLOR                BlendFactor = 2
	BLEND_FACTOR_ONE_MINUS_SRC_COLOR      BlendFactor = 3
	BLEND_FACTOR_DST_COLOR                BlendFactor = 4
	BLEND_FACTOR_ONE_MINUS_DST_COLOR      BlendFactor = 5
	BLEND_FACTOR_SRC_ALPHA                BlendFactor = 6
	BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      BlendFactor = 7
	BLEND_FACTOR_DST_ALPHA                BlendFactor = 8
	BLEND_FACTOR_ONE_MINUS_DST_ALPHA      BlendFactor = 9
	BLEND_FACTOR_CONSTANT_COLOR           BlendFactor = 10
	BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR BlendFactor = 11
	BLEND_FACTOR_CONSTANT_ALPHA           BlendFactor = 12
	BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA BlendFactor = 13
	BLEND_FACTOR_SRC_ALPHA_SATURATE       BlendFactor = 14
	BLEND_FACTOR_SRC1_COLOR               BlendFactor = 15
	BLEND_FACTOR_ONE_MINUS_SRC1_COLOR     BlendFactor = 16
	BLEND_FACTOR_SRC1_ALPHA               BlendFactor = 17
	BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA     BlendFactor = 18
	BLEND_FACTOR_MAX_ENUM                 BlendFactor = 0x7FFFFFFF
)

func (BlendFactor) String

func (v BlendFactor) String() string

type BlendOp

type BlendOp C.VkBlendOp
const (
	BLEND_OP_ADD                    BlendOp = 0
	BLEND_OP_SUBTRACT               BlendOp = 1
	BLEND_OP_REVERSE_SUBTRACT       BlendOp = 2
	BLEND_OP_MIN                    BlendOp = 3
	BLEND_OP_MAX                    BlendOp = 4
	BLEND_OP_ZERO_EXT               BlendOp = 1000148000
	BLEND_OP_SRC_EXT                BlendOp = 1000148001
	BLEND_OP_DST_EXT                BlendOp = 1000148002
	BLEND_OP_SRC_OVER_EXT           BlendOp = 1000148003
	BLEND_OP_DST_OVER_EXT           BlendOp = 1000148004
	BLEND_OP_SRC_IN_EXT             BlendOp = 1000148005
	BLEND_OP_DST_IN_EXT             BlendOp = 1000148006
	BLEND_OP_SRC_OUT_EXT            BlendOp = 1000148007
	BLEND_OP_DST_OUT_EXT            BlendOp = 1000148008
	BLEND_OP_SRC_ATOP_EXT           BlendOp = 1000148009
	BLEND_OP_DST_ATOP_EXT           BlendOp = 1000148010
	BLEND_OP_XOR_EXT                BlendOp = 1000148011
	BLEND_OP_MULTIPLY_EXT           BlendOp = 1000148012
	BLEND_OP_SCREEN_EXT             BlendOp = 1000148013
	BLEND_OP_OVERLAY_EXT            BlendOp = 1000148014
	BLEND_OP_DARKEN_EXT             BlendOp = 1000148015
	BLEND_OP_LIGHTEN_EXT            BlendOp = 1000148016
	BLEND_OP_COLORDODGE_EXT         BlendOp = 1000148017
	BLEND_OP_COLORBURN_EXT          BlendOp = 1000148018
	BLEND_OP_HARDLIGHT_EXT          BlendOp = 1000148019
	BLEND_OP_SOFTLIGHT_EXT          BlendOp = 1000148020
	BLEND_OP_DIFFERENCE_EXT         BlendOp = 1000148021
	BLEND_OP_EXCLUSION_EXT          BlendOp = 1000148022
	BLEND_OP_INVERT_EXT             BlendOp = 1000148023
	BLEND_OP_INVERT_RGB_EXT         BlendOp = 1000148024
	BLEND_OP_LINEARDODGE_EXT        BlendOp = 1000148025
	BLEND_OP_LINEARBURN_EXT         BlendOp = 1000148026
	BLEND_OP_VIVIDLIGHT_EXT         BlendOp = 1000148027
	BLEND_OP_LINEARLIGHT_EXT        BlendOp = 1000148028
	BLEND_OP_PINLIGHT_EXT           BlendOp = 1000148029
	BLEND_OP_HARDMIX_EXT            BlendOp = 1000148030
	BLEND_OP_HSL_HUE_EXT            BlendOp = 1000148031
	BLEND_OP_HSL_SATURATION_EXT     BlendOp = 1000148032
	BLEND_OP_HSL_COLOR_EXT          BlendOp = 1000148033
	BLEND_OP_HSL_LUMINOSITY_EXT     BlendOp = 1000148034
	BLEND_OP_PLUS_EXT               BlendOp = 1000148035
	BLEND_OP_PLUS_CLAMPED_EXT       BlendOp = 1000148036
	BLEND_OP_PLUS_CLAMPED_ALPHA_EXT BlendOp = 1000148037
	BLEND_OP_PLUS_DARKER_EXT        BlendOp = 1000148038
	BLEND_OP_MINUS_EXT              BlendOp = 1000148039
	BLEND_OP_MINUS_CLAMPED_EXT      BlendOp = 1000148040
	BLEND_OP_CONTRAST_EXT           BlendOp = 1000148041
	BLEND_OP_INVERT_OVG_EXT         BlendOp = 1000148042
	BLEND_OP_RED_EXT                BlendOp = 1000148043
	BLEND_OP_GREEN_EXT              BlendOp = 1000148044
	BLEND_OP_BLUE_EXT               BlendOp = 1000148045
	BLEND_OP_MAX_ENUM               BlendOp = 0x7FFFFFFF
)

func (BlendOp) String

func (v BlendOp) String() string

type Buffer

type Buffer interface {
	Usage() BufferUsageFlags
	Size() uint64
	// contains filtered or unexported methods
}

type BufferBarrier

type BufferBarrier struct {
	Buffer Buffer
	Src    BufferBarrierInfo
	Dst    BufferBarrierInfo
}

type BufferBarrierInfo

type BufferBarrierInfo struct {
	Stage  PipelineStage
	Access AccessFlags
}

type BufferCopyRegion

type BufferCopyRegion struct {
	SrcBufferOffset uint64
	DstBufferOffset uint64
	Size            uint64
}

type BufferImageCopyRegion

type BufferImageCopyRegion struct {
	BufferOffset     uint64
	ImageSubresource ImageSubresourceLayers
	ImageOffset      gmath.Vector3i32
	ImageExtent      gmath.Extent3i32
}

type BufferUsageFlags

type BufferUsageFlags C.VkBufferUsageFlags

func (BufferUsageFlags) HasBits

func (u BufferUsageFlags) HasBits(want BufferUsageFlags) bool

func (BufferUsageFlags) String

func (u BufferUsageFlags) String() string

type ColorComponentFlags

type ColorComponentFlags C.VkColorComponentFlags
const (
	COLOR_COMPONENT_R              ColorComponentFlags = 0x00000001
	COLOR_COMPONENT_G              ColorComponentFlags = 0x00000002
	COLOR_COMPONENT_B              ColorComponentFlags = 0x00000004
	COLOR_COMPONENT_A              ColorComponentFlags = 0x00000008
	COLOR_COMPONENT_FLAGS_MAX_ENUM ColorComponentFlags = 0x7FFFFFFF
)

func (ColorComponentFlags) HasBits

func (ColorComponentFlags) String

func (v ColorComponentFlags) String() string

type ColorImage

type ColorImage interface {
	Image
	Format() Format
}

type ColorImageClearValue

type ColorImageClearValue interface {
	// contains filtered or unexported methods
}

type ColorImageClearValueFloat

type ColorImageClearValueFloat struct {
	R, G, B, A float32
}

type ColorImageClearValueInt32

type ColorImageClearValueInt32 struct {
	R, G, B, A int32
}

type ColorImageClearValueUint32

type ColorImageClearValueUint32 struct {
	R, G, B, A uint32
}

type ColorImageClearValueUint64

type ColorImageClearValueUint64 struct {
	R, G uint64
}

type ComputeCommandBuffer

type ComputeCommandBuffer struct {
	// contains filtered or unexported fields
}

func (*ComputeCommandBuffer) BeginNamedRegion

func (cb *ComputeCommandBuffer) BeginNamedRegion(name string)

func (*ComputeCommandBuffer) ClearColorImage

func (cb *ComputeCommandBuffer) ClearColorImage(img ColorImage, layout ImageLayout, value ColorImageClearValue, imgRange ImageSubresourceRange)

func (*ComputeCommandBuffer) CompoundBarrier

func (cb *ComputeCommandBuffer) CompoundBarrier(memoryBarriers []MemoryBarrier, bufferBarriers []BufferBarrier, imageBarriers []ImageBarrier)

func (*ComputeCommandBuffer) CopyBuffer

func (cb *ComputeCommandBuffer) CopyBuffer(bIn, bOut Buffer, regions []BufferCopyRegion)

func (*ComputeCommandBuffer) CopyBufferToImage

func (cb *ComputeCommandBuffer) CopyBufferToImage(buffer Buffer, image Image, layout ImageLayout, regions []BufferImageCopyRegion)

func (*ComputeCommandBuffer) Dispatch

func (cb *ComputeCommandBuffer) Dispatch(p *ComputePipeline, info DispatchInfo)

func (*ComputeCommandBuffer) DispatchIndirect

func (cb *ComputeCommandBuffer) DispatchIndirect(p *ComputePipeline, info DispatchIndirectInfo)

func (*ComputeCommandBuffer) EndNamedRegion

func (cb *ComputeCommandBuffer) EndNamedRegion()

func (*ComputeCommandBuffer) ExecutionBarrier

func (cb *ComputeCommandBuffer) ExecutionBarrier(src, dst PipelineStage)

func (*ComputeCommandBuffer) FillBuffer

func (cb *ComputeCommandBuffer) FillBuffer(buffer Buffer, offset, size uint64, value uint32)

func (*ComputeCommandBuffer) ImageBarrier

func (cb *ComputeCommandBuffer) ImageBarrier(barriers ...ImageBarrier)

func (*ComputeCommandBuffer) MemoryBarrier

func (cb *ComputeCommandBuffer) MemoryBarrier(barriers ...MemoryBarrier)

func (*ComputeCommandBuffer) UpdateBuffer

func (cb *ComputeCommandBuffer) UpdateBuffer(buffer Buffer, offset uint64, data []byte)

type ComputePipeline

type ComputePipeline struct {
	// contains filtered or unexported fields
}

func NewComputePipeline

func NewComputePipeline(pipelineLayout *PipelineLayout, s *Shader, entryPoint ShaderEntryPointComputeLayout, info ComputePipelineCreateInfo) *ComputePipeline

func (*ComputePipeline) Destroy

func (p *ComputePipeline) Destroy()

type ComputePipelineCreateInfo

type ComputePipelineCreateInfo struct {
	StageFlags           ComputeStageFlags
	RequiredSubgroupSize uint32
	SpecConstants        []uint32
}

type Config

type Config struct {
	PreferredVkPhysicalDevice uintptr
	API                       uint32
	MaxFramesInFlight         int32
	DescriptorPoolBankSize    int32

	RequiredExtensions []string
	OptionalExtensions []string

	RequiredFeatures []VkFeatureStruct
	OptionalFeatures []VkFeatureStruct

	RequiredFormatFeatures             map[Format]FormatFeatureFlags
	RequiredDepthStencilFormatFeatures map[DepthStencilFormat]FormatFeatureFlags
}

func (*Config) MarshalJSON

func (c *Config) MarshalJSON() ([]byte, error)

type CullMode

type CullMode C.VkCullModeFlags
const (
	CullModeNone         CullMode = vk.CULL_MODE_NONE
	CullModeFront        CullMode = vk.CULL_MODE_FRONT_BIT
	CullModeBack         CullMode = vk.CULL_MODE_BACK_BIT
	CullModeFrontAndBack CullMode = vk.CULL_MODE_FRONT_AND_BACK
)

type DepthStencilFormat

type DepthStencilFormat C.VkFormat

func (DepthStencilFormat) HasFeatures

func (v DepthStencilFormat) HasFeatures(want FormatFeatureFlags) bool

func (DepthStencilFormat) String

func (v DepthStencilFormat) String() string

type DepthStencilImage

type DepthStencilImage interface {
	Image
	Format() DepthStencilFormat
}

type DescriptorBufferInfo

type DescriptorBufferInfo struct {
	Buffer Buffer
}

type DescriptorCombinedImageSamplerInfo

type DescriptorCombinedImageSamplerInfo struct {
	Sampler *Sampler
	Image   Image
	Layout  ImageLayout
}

type DescriptorImageInfo

type DescriptorImageInfo struct {
	Image  Image
	Layout ImageLayout
}

type DescriptorInfo

type DescriptorInfo interface {
	// contains filtered or unexported methods
}

type DescriptorSet

type DescriptorSet struct {
	// contains filtered or unexported fields
}

func (*DescriptorSet) Bind

func (s *DescriptorSet) Bind(bindingIndex, descriptorIndex int, descriptors ...DescriptorInfo)

func (*DescriptorSet) Destroy

func (s *DescriptorSet) Destroy()

type DescriptorType

type DescriptorType C.VkDescriptorType
const (
	DescriptorTypeUniformBuffer        DescriptorType = vk.DESCRIPTOR_TYPE_UNIFORM_BUFFER
	DescriptorTypeUniformTexelBuffer   DescriptorType = vk.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
	DescriptorTypeStorageBuffer        DescriptorType = vk.DESCRIPTOR_TYPE_STORAGE_BUFFER
	DescriptorTypeStorageTexelBuffer   DescriptorType = vk.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
	DescriptorTypeStorageImage         DescriptorType = vk.DESCRIPTOR_TYPE_STORAGE_IMAGE
	DescriptorTypeCombinedImageSampler DescriptorType = vk.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
	DescriptorTypeSampledImage         DescriptorType = vk.DESCRIPTOR_TYPE_SAMPLED_IMAGE
	DescriptorTypeSampler              DescriptorType = vk.DESCRIPTOR_TYPE_SAMPLER
)

func (DescriptorType) String

func (t DescriptorType) String() string

type Destroyer

type Destroyer interface {
	Destroy()
}

type DeviceBuffer

type DeviceBuffer struct {
	// contains filtered or unexported fields
}

func NewDeviceBuffer

func NewDeviceBuffer(name string, size uint64, usage BufferUsageFlags) *DeviceBuffer

func (*DeviceBuffer) Destroy

func (b *DeviceBuffer) Destroy()

func (*DeviceBuffer) Size

func (b *DeviceBuffer) Size() uint64

func (*DeviceBuffer) Usage

func (b *DeviceBuffer) Usage() BufferUsageFlags

type DeviceColorImage

type DeviceColorImage struct {
	// contains filtered or unexported fields
}

func NewColorImageWithFormat

func NewColorImageWithFormat(name string, format Format, info ImageCreateInfo) *DeviceColorImage

func (*DeviceColorImage) BufferSize

func (img *DeviceColorImage) BufferSize() uint64

func (*DeviceColorImage) Destroy

func (img *DeviceColorImage) Destroy()

func (*DeviceColorImage) Extent

func (img *DeviceColorImage) Extent() gmath.Extent3i32

func (*DeviceColorImage) Format

func (img *DeviceColorImage) Format() Format

type DeviceDepthImage

type DeviceDepthImage struct {
	// contains filtered or unexported fields
}

func NewDepthImageWithAtLestBits

func NewDepthImageWithAtLestBits(name string, bits int, info ImageCreateInfo) *DeviceDepthImage

func NewDepthImageWithAtMostBits

func NewDepthImageWithAtMostBits(name string, bits int, info ImageCreateInfo) *DeviceDepthImage

func NewDepthImageWithFormat

func NewDepthImageWithFormat(name string, format DepthStencilFormat, info ImageCreateInfo) *DeviceDepthImage

func (*DeviceDepthImage) Destroy

func (img *DeviceDepthImage) Destroy()

func (*DeviceDepthImage) Extent

func (img *DeviceDepthImage) Extent() gmath.Extent3i32

func (*DeviceDepthImage) Format

func (img *DeviceDepthImage) Format() DepthStencilFormat

type DispatchIndirectInfo

type DispatchIndirectInfo struct {
	PushConstants  []byte
	DescriptorSets []*DescriptorSet
	Buffer         Buffer
	Offset         uint64
}

type DispatchInfo

type DispatchInfo struct {
	PushConstants  []byte
	DescriptorSets []*DescriptorSet
	ThreadCount    gmath.Extent3u32
}

type DrawIndexedBufferInfo

type DrawIndexedBufferInfo struct {
	Buffer     Buffer
	Offset     uint64
	IndexType  IndexType
	IndexCount uint32
}

type DrawIndexedIndirectInfo

type DrawIndexedIndirectInfo struct {
	DrawParameters DrawParameters
	IndexBuffer    DrawIndexedBufferInfo
	IndirectBuffer DrawIndirectBufferInfo
}

type DrawIndexedInfo

type DrawIndexedInfo struct {
	DrawParameters DrawParameters
	IndexBuffer    DrawIndexedBufferInfo
	InstanceCount  uint32
}

type DrawIndirectBufferInfo

type DrawIndirectBufferInfo struct {
	Buffer    Buffer
	Offset    uint64
	DrawCount uint32
}

type DrawIndirectInfo

type DrawIndirectInfo struct {
	DrawParameters DrawParameters
	IndirectBuffer DrawIndirectBufferInfo
}

type DrawInfo

type DrawInfo struct {
	DrawParameters DrawParameters
	VertexCount    uint32
	InstanceCount  uint32
}

type DrawParameters

type DrawParameters struct {
	PushConstants  []byte
	DescriptorSets []*DescriptorSet

	CullMode  CullMode
	FrontFace FrontFace

	DepthTestEnable  bool
	DepthWriteEnable bool
}

type ErrorDeviceNotFound

type ErrorDeviceNotFound struct{}

func (ErrorDeviceNotFound) Error

func (ErrorDeviceNotFound) Error() string

func (ErrorDeviceNotFound) Is

func (ErrorDeviceNotFound) Is(target error) bool

type Format

type Format C.VkFormat

func (Format) BlockExtent

func (v Format) BlockExtent() gmath.Extent3i32

func (Format) BlockSize

func (v Format) BlockSize() int32

func (Format) ColorComponentFlags

func (v Format) ColorComponentFlags() ColorComponentFlags

func (Format) HasFeatures

func (v Format) HasFeatures(want FormatFeatureFlags) bool

func (Format) String

func (v Format) String() string

type FormatFeatureFlags

type FormatFeatureFlags C.VkFormatFeatureFlags2
const (
	FORMAT_FEATURE_SAMPLED_IMAGE                                                               FormatFeatureFlags = 0x00000001
	FORMAT_FEATURE_STORAGE_IMAGE                                                               FormatFeatureFlags = 0x00000002
	FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC                                                        FormatFeatureFlags = 0x00000004
	FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER                                                        FormatFeatureFlags = 0x00000008
	FORMAT_FEATURE_STORAGE_TEXEL_BUFFER                                                        FormatFeatureFlags = 0x00000010
	FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC                                                 FormatFeatureFlags = 0x00000020
	FORMAT_FEATURE_VERTEX_BUFFER                                                               FormatFeatureFlags = 0x00000040
	FORMAT_FEATURE_COLOR_ATTACHMENT                                                            FormatFeatureFlags = 0x00000080
	FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND                                                      FormatFeatureFlags = 0x00000100
	FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT                                                    FormatFeatureFlags = 0x00000200
	FORMAT_FEATURE_BLIT_SRC                                                                    FormatFeatureFlags = 0x00000400
	FORMAT_FEATURE_BLIT_DST                                                                    FormatFeatureFlags = 0x00000800
	FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR                                                 FormatFeatureFlags = 0x00001000
	FORMAT_FEATURE_TRANSFER_SRC                                                                FormatFeatureFlags = 0x00004000
	FORMAT_FEATURE_TRANSFER_DST                                                                FormatFeatureFlags = 0x00008000
	FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX                                                 FormatFeatureFlags = 0x00010000
	FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES                                                     FormatFeatureFlags = 0x00020000
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER                                FormatFeatureFlags = 0x00040000
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER               FormatFeatureFlags = 0x00080000
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT               FormatFeatureFlags = 0x00100000
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE     FormatFeatureFlags = 0x00200000
	FORMAT_FEATURE_DISJOINT                                                                    FormatFeatureFlags = 0x00400000
	FORMAT_FEATURE_COSITED_CHROMA_SAMPLES                                                      FormatFeatureFlags = 0x00800000
	FORMAT_FEATURE_STORAGE_READ_WITHOUT_FORMAT                                                 FormatFeatureFlags = 0x80000000
	FORMAT_FEATURE_STORAGE_WRITE_WITHOUT_FORMAT                                                FormatFeatureFlags = 0x100000000
	FORMAT_FEATURE_SAMPLED_IMAGE_DEPTH_COMPARISON                                              FormatFeatureFlags = 0x200000000
	FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC                                                  FormatFeatureFlags = 0x00002000
	FORMAT_FEATURE_HOST_IMAGE_TRANSFER                                                         FormatFeatureFlags = 0x400000000000
	FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_KHR                                                     FormatFeatureFlags = 0x02000000
	FORMAT_FEATURE_VIDEO_DECODE_DPB_KHR                                                        FormatFeatureFlags = 0x04000000
	FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR                                    FormatFeatureFlags = 0x20000000
	FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_EXT                                                    FormatFeatureFlags = 0x01000000
	FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR                                        FormatFeatureFlags = 0x40000000
	FORMAT_FEATURE_HOST_IMAGE_TRANSFER_EXT                                                     FormatFeatureFlags = FORMAT_FEATURE_HOST_IMAGE_TRANSFER
	FORMAT_FEATURE_VIDEO_ENCODE_INPUT_KHR                                                      FormatFeatureFlags = 0x08000000
	FORMAT_FEATURE_VIDEO_ENCODE_DPB_KHR                                                        FormatFeatureFlags = 0x10000000
	FORMAT_FEATURE_SAMPLED_IMAGE_KHR                                                           FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE
	FORMAT_FEATURE_STORAGE_IMAGE_KHR                                                           FormatFeatureFlags = FORMAT_FEATURE_STORAGE_IMAGE
	FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_KHR                                                    FormatFeatureFlags = FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC
	FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_KHR                                                    FormatFeatureFlags = FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER
	FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_KHR                                                    FormatFeatureFlags = FORMAT_FEATURE_STORAGE_TEXEL_BUFFER
	FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_KHR                                             FormatFeatureFlags = FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC
	FORMAT_FEATURE_VERTEX_BUFFER_KHR                                                           FormatFeatureFlags = FORMAT_FEATURE_VERTEX_BUFFER
	FORMAT_FEATURE_COLOR_ATTACHMENT_KHR                                                        FormatFeatureFlags = FORMAT_FEATURE_COLOR_ATTACHMENT
	FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_KHR                                                  FormatFeatureFlags = FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND
	FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_KHR                                                FormatFeatureFlags = FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT
	FORMAT_FEATURE_BLIT_SRC_KHR                                                                FormatFeatureFlags = FORMAT_FEATURE_BLIT_SRC
	FORMAT_FEATURE_BLIT_DST_KHR                                                                FormatFeatureFlags = FORMAT_FEATURE_BLIT_DST
	FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_KHR                                             FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR
	FORMAT_FEATURE_TRANSFER_SRC_KHR                                                            FormatFeatureFlags = FORMAT_FEATURE_TRANSFER_SRC
	FORMAT_FEATURE_TRANSFER_DST_KHR                                                            FormatFeatureFlags = FORMAT_FEATURE_TRANSFER_DST
	FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_KHR                                                 FormatFeatureFlags = FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR                            FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR           FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR           FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT
	FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE
	FORMAT_FEATURE_DISJOINT_KHR                                                                FormatFeatureFlags = FORMAT_FEATURE_DISJOINT
	FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_KHR                                                  FormatFeatureFlags = FORMAT_FEATURE_COSITED_CHROMA_SAMPLES
	FORMAT_FEATURE_STORAGE_READ_WITHOUT_FORMAT_KHR                                             FormatFeatureFlags = FORMAT_FEATURE_STORAGE_READ_WITHOUT_FORMAT
	FORMAT_FEATURE_STORAGE_WRITE_WITHOUT_FORMAT_KHR                                            FormatFeatureFlags = FORMAT_FEATURE_STORAGE_WRITE_WITHOUT_FORMAT
	FORMAT_FEATURE_SAMPLED_IMAGE_DEPTH_COMPARISON_KHR                                          FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_DEPTH_COMPARISON
	FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_KHR                                             FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX
	FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_EXT                                              FormatFeatureFlags = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC
	FORMAT_FEATURE_ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV                                     FormatFeatureFlags = 0x8000000000000
	FORMAT_FEATURE_LINEAR_COLOR_ATTACHMENT_NV                                                  FormatFeatureFlags = 0x4000000000
	FORMAT_FEATURE_WEIGHT_IMAGE_QCOM                                                           FormatFeatureFlags = 0x400000000
	FORMAT_FEATURE_WEIGHT_SAMPLED_IMAGE_QCOM                                                   FormatFeatureFlags = 0x800000000
	FORMAT_FEATURE_BLOCK_MATCHING_QCOM                                                         FormatFeatureFlags = 0x1000000000
	FORMAT_FEATURE_BOX_FILTER_SAMPLED_QCOM                                                     FormatFeatureFlags = 0x2000000000
	FORMAT_FEATURE_OPTICAL_FLOW_IMAGE_NV                                                       FormatFeatureFlags = 0x10000000000
	FORMAT_FEATURE_OPTICAL_FLOW_VECTOR_NV                                                      FormatFeatureFlags = 0x20000000000
	FORMAT_FEATURE_OPTICAL_FLOW_COST_NV                                                        FormatFeatureFlags = 0x40000000000
	FORMAT_FEATURE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR                                     FormatFeatureFlags = 0x2000000000000
	FORMAT_FEATURE_VIDEO_ENCODE_EMPHASIS_MAP_KHR                                               FormatFeatureFlags = 0x4000000000000
)

func (FormatFeatureFlags) HasBits

func (v FormatFeatureFlags) HasBits(want FormatFeatureFlags) bool

func (FormatFeatureFlags) String

func (v FormatFeatureFlags) String() string

type Frame

type Frame struct {
	// contains filtered or unexported fields
}

func FrameBegin

func FrameBegin() *Frame

func (*Frame) Cancel

func (f *Frame) Cancel()

func (*Frame) End

func (f *Frame) End(destroyers ...Destroyer)

func (*Frame) EndWithWaiter

func (f *Frame) EndWithWaiter(waiter *TimelineSemaphoreWaiter, destroyers ...Destroyer)

func (*Frame) Index

func (f *Frame) Index() int

func (*Frame) NewHostScratchBuffer

func (f *Frame) NewHostScratchBuffer(name string, size uint64, usage BufferUsageFlags) *HostScratchBuffer

func (*Frame) NewSingleUseCommandBuffer

func (f *Frame) NewSingleUseCommandBuffer(name string) *GraphicsCommandBuffer

func (*Frame) Surface

func (f *Frame) Surface() *Surface

type FrontFace

type FrontFace C.VkFrontFace
const (
	FrontFaceCounterClockwise FrontFace = vk.FRONT_FACE_COUNTER_CLOCKWISE
	FrontFaceClockwise        FrontFace = vk.FRONT_FACE_CLOCKWISE
)

type GraphicsCommandBuffer

type GraphicsCommandBuffer struct {
	ComputeCommandBuffer
	// contains filtered or unexported fields
}

func (*GraphicsCommandBuffer) BeginNamedRegion

func (cb *GraphicsCommandBuffer) BeginNamedRegion(name string)

func (*GraphicsCommandBuffer) ClearColorImage

func (cb *GraphicsCommandBuffer) ClearColorImage(img ColorImage, layout ImageLayout, value ColorImageClearValue, imgRange ImageSubresourceRange)

func (*GraphicsCommandBuffer) CompoundBarrier

func (cb *GraphicsCommandBuffer) CompoundBarrier(memoryBarriers []MemoryBarrier, bufferBarriers []BufferBarrier, imageBarriers []ImageBarrier)

func (*GraphicsCommandBuffer) CopyBuffer

func (cb *GraphicsCommandBuffer) CopyBuffer(bIn, bOut Buffer, regions []BufferCopyRegion)

func (*GraphicsCommandBuffer) CopyBufferToImage

func (cb *GraphicsCommandBuffer) CopyBufferToImage(buffer Buffer, image Image, layout ImageLayout, regions []BufferImageCopyRegion)

func (*GraphicsCommandBuffer) Draw

func (*GraphicsCommandBuffer) DrawIndexed

func (*GraphicsCommandBuffer) DrawIndexedIndirect

func (*GraphicsCommandBuffer) DrawIndirect

func (*GraphicsCommandBuffer) EndNamedRegion

func (cb *GraphicsCommandBuffer) EndNamedRegion()

func (*GraphicsCommandBuffer) ExecutionBarrier

func (cb *GraphicsCommandBuffer) ExecutionBarrier(src, dst PipelineStage)

func (*GraphicsCommandBuffer) FillBuffer

func (cb *GraphicsCommandBuffer) FillBuffer(buffer Buffer, offset, size uint64, value uint32)

func (*GraphicsCommandBuffer) ImageBarrier

func (cb *GraphicsCommandBuffer) ImageBarrier(barriers ...ImageBarrier)

func (*GraphicsCommandBuffer) MemoryBarrier

func (cb *GraphicsCommandBuffer) MemoryBarrier(barriers ...MemoryBarrier)

func (*GraphicsCommandBuffer) RenderPassBegin

func (cb *GraphicsCommandBuffer) RenderPassBegin(name string, area gmath.Recti32, attachments RenderAttachments)

func (*GraphicsCommandBuffer) RenderPassEnd

func (cb *GraphicsCommandBuffer) RenderPassEnd()

func (*GraphicsCommandBuffer) Submit

func (cb *GraphicsCommandBuffer) Submit(waitSemaphores []SemaphoreWaitInfo, signalSemaphores []SemaphoreSignalInfo)

func (*GraphicsCommandBuffer) UpdateBuffer

func (cb *GraphicsCommandBuffer) UpdateBuffer(buffer Buffer, offset uint64, data []byte)

type GraphicsPipelineLibrary

type GraphicsPipelineLibrary struct {
	Layout                       *PipelineLayout
	VertexInput                  *VertexInputPipeline
	VertexShader, FragmentShader *GraphicsShaderPipeline
}

type GraphicsShaderPipeline

type GraphicsShaderPipeline struct {
	// contains filtered or unexported fields
}

func NewGraphicsShaderPipeline

func NewGraphicsShaderPipeline(pipelineLayout *PipelineLayout, s *Shader, entryPoint ShaderEntryPointLayout, info GraphicsShaderPipelineCreateInfo) *GraphicsShaderPipeline

func (*GraphicsShaderPipeline) Destroy

func (s *GraphicsShaderPipeline) Destroy()

type GraphicsShaderPipelineCreateInfo

type GraphicsShaderPipelineCreateInfo struct {
	SpecConstants []uint32
}

type HostBuffer

type HostBuffer struct {
	// contains filtered or unexported fields
}

func NewHostBuffer

func NewHostBuffer(name string, size uint64, usage BufferUsageFlags) *HostBuffer

func (*HostBuffer) Destroy

func (b *HostBuffer) Destroy()

func (*HostBuffer) HostRead

func (b *HostBuffer) HostRead(offset uintptr, data []byte)

func (*HostBuffer) HostWrite

func (b *HostBuffer) HostWrite(offset uintptr, data []byte)

func (*HostBuffer) Size

func (b *HostBuffer) Size() uint64

func (*HostBuffer) Usage

func (b *HostBuffer) Usage() BufferUsageFlags

type HostScratchBuffer

type HostScratchBuffer struct {
	// contains filtered or unexported fields
}

func (*HostScratchBuffer) HostWrite

func (b *HostScratchBuffer) HostWrite(offset uintptr, data []byte)

func (*HostScratchBuffer) Size

func (b *HostScratchBuffer) Size() uint64

func (*HostScratchBuffer) Usage

type Image

type Image interface {
	// contains filtered or unexported methods
}

type ImageBarrier

type ImageBarrier struct {
	Image Image
	Src   ImageBarrierInfo
	Dst   ImageBarrierInfo
	Range ImageSubresourceRange
}

type ImageBarrierInfo

type ImageBarrierInfo struct {
	Stage  PipelineStage
	Access AccessFlags
	Layout ImageLayout
}

type ImageCreateFlags

type ImageCreateFlags C.VkImageCreateFlags
const (
	IMAGE_CREATE_SPARSE_BINDING                            ImageCreateFlags = 0x00000001
	IMAGE_CREATE_SPARSE_RESIDENCY                          ImageCreateFlags = 0x00000002
	IMAGE_CREATE_SPARSE_ALIASED                            ImageCreateFlags = 0x00000004
	IMAGE_CREATE_MUTABLE_FORMAT                            ImageCreateFlags = 0x00000008
	IMAGE_CREATE_CUBE_COMPATIBLE                           ImageCreateFlags = 0x00000010
	IMAGE_CREATE_ALIAS                                     ImageCreateFlags = 0x00000400
	IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS               ImageCreateFlags = 0x00000040
	IMAGE_CREATE_2D_ARRAY_COMPATIBLE                       ImageCreateFlags = 0x00000020
	IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE               ImageCreateFlags = 0x00000080
	IMAGE_CREATE_EXTENDED_USAGE                            ImageCreateFlags = 0x00000100
	IMAGE_CREATE_PROTECTED                                 ImageCreateFlags = 0x00000800
	IMAGE_CREATE_DISJOINT                                  ImageCreateFlags = 0x00000200
	IMAGE_CREATE_CORNER_SAMPLED_NV                         ImageCreateFlags = 0x00002000
	IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT     ImageCreateFlags = 0x00001000
	IMAGE_CREATE_SUBSAMPLED_EXT                            ImageCreateFlags = 0x00004000
	IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT      ImageCreateFlags = 0x00010000
	IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT ImageCreateFlags = 0x00040000
	IMAGE_CREATE_2D_VIEW_COMPATIBLE_EXT                    ImageCreateFlags = 0x00020000
	IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_QCOM          ImageCreateFlags = 0x00008000
	IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_KHR             ImageCreateFlags = 0x00100000
	IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_KHR           ImageCreateFlags = IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS
	IMAGE_CREATE_2D_ARRAY_COMPATIBLE_KHR                   ImageCreateFlags = IMAGE_CREATE_2D_ARRAY_COMPATIBLE
	IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_KHR           ImageCreateFlags = IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE
	IMAGE_CREATE_EXTENDED_USAGE_KHR                        ImageCreateFlags = IMAGE_CREATE_EXTENDED_USAGE
	IMAGE_CREATE_DISJOINT_KHR                              ImageCreateFlags = IMAGE_CREATE_DISJOINT
	IMAGE_CREATE_ALIAS_KHR                                 ImageCreateFlags = IMAGE_CREATE_ALIAS
	IMAGE_CREATE_FLAGS_MAX_ENUM                            ImageCreateFlags = 0x7FFFFFFF
)

func (ImageCreateFlags) HasBits

func (v ImageCreateFlags) HasBits(want ImageCreateFlags) bool

func (ImageCreateFlags) String

func (v ImageCreateFlags) String() string

type ImageCreateInfo

type ImageCreateInfo struct {
	Usage          ImageUsageFlags
	Flags          ImageCreateFlags
	ViewFlags      ImageViewCreateFlags
	ImageType      ImageType
	Extent         gmath.Extent3i32
	NumMipLevels   int32
	NumArrayLayers int32
}

type ImageLayout

type ImageLayout C.VkImageLayout
const (
	ImageLayoutUndefined         ImageLayout = vk.IMAGE_LAYOUT_UNDEFINED
	ImageLayoutGeneral           ImageLayout = vk.IMAGE_LAYOUT_GENERAL
	ImageLayoutTransferSrc       ImageLayout = vk.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
	ImageLayoutTransferDst       ImageLayout = vk.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
	ImageLayoutReadOnlyOptimal   ImageLayout = vk.IMAGE_LAYOUT_READ_ONLY_OPTIMAL
	ImageLayoutAttachmentOptimal ImageLayout = vk.IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
	ImageLayoutPresent           ImageLayout = vk.IMAGE_LAYOUT_PRESENT_SRC_KHR
)

type ImageSubresourceLayers

type ImageSubresourceLayers struct {
	MipLevel uint32

	BaseArrayLayer uint32
	NumArrayLayers uint32
}

type ImageSubresourceRange

type ImageSubresourceRange struct {
	BaseMipLevel uint32
	NumMipLevels uint32

	BaseArrayLayer uint32
	NumArrayLayers uint32
}

type ImageType

type ImageType C.VkImageType
const (
	ImageTypeAuto ImageType = iota
	ImageType1D
	ImageType2D
	ImageType3D
)

type ImageUsageFlags

type ImageUsageFlags C.VkImageUsageFlags

func (ImageUsageFlags) FormatFeatureFlags

func (u ImageUsageFlags) FormatFeatureFlags() FormatFeatureFlags

func (ImageUsageFlags) HasBits

func (u ImageUsageFlags) HasBits(want ImageUsageFlags) bool

func (ImageUsageFlags) String

func (u ImageUsageFlags) String() string

type ImageViewCreateFlags

type ImageViewCreateFlags C.VkImageViewCreateFlags
const (
	IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_EXT     ImageViewCreateFlags = 0x00000001
	IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT ImageViewCreateFlags = 0x00000004
	IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_EXT    ImageViewCreateFlags = 0x00000002
	IMAGE_VIEW_CREATE_FLAGS_MAX_ENUM                       ImageViewCreateFlags = 0x7FFFFFFF
)

func (ImageViewCreateFlags) HasBits

func (ImageViewCreateFlags) String

func (v ImageViewCreateFlags) String() string

type ImageViewType

type ImageViewType C.VkImageViewType
const (
	ImageViewType1D        ImageViewType = vk.IMAGE_VIEW_TYPE_1D
	ImageViewType1DArray   ImageViewType = vk.IMAGE_VIEW_TYPE_1D_ARRAY
	ImageViewType2D        ImageViewType = vk.IMAGE_VIEW_TYPE_2D
	ImageViewType2DArray   ImageViewType = vk.IMAGE_VIEW_TYPE_2D_ARRAY
	ImageViewType3D        ImageViewType = vk.IMAGE_VIEW_TYPE_3D
	ImageViewTypeCube      ImageViewType = vk.IMAGE_VIEW_TYPE_CUBE
	ImageViewTypeCubeArray ImageViewType = vk.IMAGE_VIEW_TYPE_CUBE_ARRAY
)

func (ImageViewType) String

func (t ImageViewType) String() string

type IndexType

type IndexType C.VkIndexType
const (
	INDEX_TYPE_UINT16    IndexType = 0
	INDEX_TYPE_UINT32    IndexType = 1
	INDEX_TYPE_UINT8     IndexType = 1000265000
	INDEX_TYPE_NONE_KHR  IndexType = 1000165000
	INDEX_TYPE_NONE_NV   IndexType = INDEX_TYPE_NONE_KHR
	INDEX_TYPE_UINT8_EXT IndexType = INDEX_TYPE_UINT8
	INDEX_TYPE_UINT8_KHR IndexType = INDEX_TYPE_UINT8
	INDEX_TYPE_MAX_ENUM  IndexType = 0x7FFFFFFF
)

func (IndexType) String

func (v IndexType) String() string

type Limits

type Limits struct {
	PointSize gmath.Bounds[float32]
	LineWidth gmath.Bounds[float32]
	Global    struct {
		MaxAllocationSize         uint64
		MaxMemoryAllocationCount  uint32
		MaxSamplerAllocationCount uint32
	}
	PerDesctiptor struct {
		MaxImageDimension1D   int32
		MaxImageDimension2D   int32
		MaxImageDimension3D   int32
		MaxImageDimensionCube int32
		MaxImageArrayLayers   int32
		MaxSamplerAnisotropy  float32
		MaxUBOSize            uint32
		MaxSBOSize            uint32
	}
	PerStage struct {
		MaxSamplerCount              uint32
		MaxSampledImageCount         uint32
		MaxCombinedImageSamplerCount uint32
		MaxStorageImageCount         uint32

		MaxUBOCount      uint32
		MaxSBOCount      uint32
		MaxResourceCount uint32
	}
	PerPipeline struct {
		MaxSamplerCount              uint32
		MaxSampledImageCount         uint32
		MaxCombinedImageSamplerCount uint32
		MaxStorageImageCount         uint32

		MaxUBOCount uint32
		MaxSBOCount uint32

		MaxBoundDescriptorSets uint32
		MaxPushConstantsSize   uint32
	}
	Compute struct {
		MaxDispatchSize gmath.Extent3u32
		MaxLocalSize    gmath.Extent3u32
		SubgroupSize    gmath.Bounds[uint32]
		Workgroup       struct {
			MaxInvocations   uint32
			MaxSubgroupCount uint32
		}
	}
}

type MemoryBarrier

type MemoryBarrier struct {
	Src MemoryBarrierInfo
	Dst MemoryBarrierInfo
}

type MemoryBarrierInfo

type MemoryBarrierInfo struct {
	Stage  PipelineStage
	Access AccessFlags
}

type PipelineLayout

type PipelineLayout struct {
	// contains filtered or unexported fields
}

func NewPipelineLayout

func NewPipelineLayout(infos ...PipelineLayoutCreateInfo) *PipelineLayout

func (*PipelineLayout) MarshalJSON

func (l *PipelineLayout) MarshalJSON() ([]byte, error)

func (*PipelineLayout) NewDescriptorSet

func (l *PipelineLayout) NewDescriptorSet(set int) *DescriptorSet

type PipelineLayoutCreateInfo

type PipelineLayoutCreateInfo struct {
	ShaderLayout  *ShaderLayout
	ShaderStage   ShaderStage
	SpecConstants []uint32
}

type PipelineStage

type PipelineStage C.VkPipelineStageFlags2
const (
	PipelineStageNone PipelineStage = vk.PIPELINE_STAGE_2_NONE
	// VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT is not exclusive to draw calls so drop the draw prefix
	PipelineStageIndirect       PipelineStage = vk.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT
	PipelineStageCompute        PipelineStage = vk.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT
	PipelineStageVertexInput    PipelineStage = vk.PIPELINE_STAGE_2_VERTEX_INPUT_BIT
	PipelineStageVertexShader   PipelineStage = vk.PIPELINE_STAGE_2_VERTEX_SHADER_BIT
	PipelineStageFragmentShader PipelineStage = vk.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT
	// these are likely not useful as rarely could you use one without the other
	// PipelineStageEarlyFragmentTests     PipelineStage = vk.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT
	// PipelineStageLateFragmentTests      PipelineStage = vk.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT
	PipelineStageFragmentTests PipelineStage = vk.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT | vk.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT
	// VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT actually also includes depth so drop the color label
	PipelineStageRenderAttachmentWrite PipelineStage = vk.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
	PipelineStageGraphics              PipelineStage = vk.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
	PipelineStageTransfer              PipelineStage = vk.PIPELINE_STAGE_2_ALL_TRANSFER_BIT
	PipelineStageAll                   PipelineStage = vk.PIPELINE_STAGE_2_ALL_COMMANDS_BIT
)

type Properties

type Properties struct {
	UUID          UUID
	VendorID      VendorID
	DeviceID      uint32
	DriverVersion uint32
	API           uint32
	Compute       struct {
		SubgroupSize uint32
	}
	Limits            Limits
	EnabledExtensions []string
	EnabledFeatures   map[string]map[string]bool
}

func DeviceProperties

func DeviceProperties() Properties

func (*Properties) MarshalJSON

func (p *Properties) MarshalJSON() ([]byte, error)

type RenderAttachmentLoadOp

type RenderAttachmentLoadOp C.VkAttachmentLoadOp
const (
	RenderAttachmentLoadOpLoad     RenderAttachmentLoadOp = vk.ATTACHMENT_LOAD_OP_LOAD
	RenderAttachmentLoadOpClear    RenderAttachmentLoadOp = vk.ATTACHMENT_LOAD_OP_CLEAR
	RenderAttachmentLoadOpDontCare RenderAttachmentLoadOp = vk.ATTACHMENT_LOAD_OP_DONT_CARE
	// requires vk1.4 or VK_EXT_load_store_op_none
	// load+store none means no access which means no sync required
	RenderAttachmentLoadOpNone RenderAttachmentLoadOp = vk.ATTACHMENT_LOAD_OP_NONE
)

type RenderAttachmentStoreOp

type RenderAttachmentStoreOp C.VkAttachmentStoreOp
const (
	RenderAttachmentStoreOpStore    RenderAttachmentStoreOp = vk.ATTACHMENT_STORE_OP_STORE
	RenderAttachmentStoreOpDontCare RenderAttachmentStoreOp = vk.ATTACHMENT_STORE_OP_DONT_CARE
	RenderAttachmentStoreOpNone     RenderAttachmentStoreOp = vk.ATTACHMENT_STORE_OP_NONE
)

type RenderAttachments

type RenderAttachments struct {
	Color   []RenderColorAttachment
	Depth   RenderDepthAttachment
	Stencil RenderStencilAttachment
}

type RenderClearDepthValue

type RenderClearDepthValue struct {
	Depth float32
	// contains filtered or unexported fields
}

type RenderClearStencilValue

type RenderClearStencilValue struct {
	Stencil uint32
	// contains filtered or unexported fields
}

type RenderColorAttachment

type RenderColorAttachment struct {
	Image      ColorImage
	Layout     ImageLayout
	LoadOp     RenderAttachmentLoadOp
	StoreOp    RenderAttachmentStoreOp
	ClearValue ColorImageClearValue

	ColorBlendEnable    bool
	ColorBlendEquation  RenderColorAttachmentBlendEquation
	ColorComponentFlags ColorComponentFlags
}

type RenderColorAttachmentBlendEquation

type RenderColorAttachmentBlendEquation struct {
	Color BlendEquation
	Alpha BlendEquation
}

func RenderColorAttachmentBlendAlpha

func RenderColorAttachmentBlendAlpha() RenderColorAttachmentBlendEquation

func RenderColorAttachmentBlendPremultipliedAlpha

func RenderColorAttachmentBlendPremultipliedAlpha() RenderColorAttachmentBlendEquation

type RenderDepthAttachment

type RenderDepthAttachment struct {
	Image      DepthStencilImage
	Layout     ImageLayout
	LoadOp     RenderAttachmentLoadOp
	StoreOp    RenderAttachmentStoreOp
	ClearValue RenderClearDepthValue
}

type RenderStencilAttachment

type RenderStencilAttachment struct {
	Image      DepthStencilImage
	Layout     ImageLayout
	LoadOp     RenderAttachmentLoadOp
	StoreOp    RenderAttachmentStoreOp
	ClearValue RenderClearStencilValue
}

type Sampler

type Sampler struct {
	// contains filtered or unexported fields
}

func NewSampler

func NewSampler(name string, info SamplerCreateInfo) *Sampler

func (*Sampler) Destroy

func (s *Sampler) Destroy()

type SamplerAddressMode

type SamplerAddressMode C.VkSamplerAddressMode
const (
	SamplerAddressModeRepeat              SamplerAddressMode = vk.SAMPLER_ADDRESS_MODE_REPEAT
	SamplerAddressModeMirroredRepeat      SamplerAddressMode = vk.SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
	SamplerAddressModeClampToEdge         SamplerAddressMode = vk.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
	SamplerAddressModeClampToBorder       SamplerAddressMode = vk.SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
	SamplerAddressModeMirroredClampToEdge SamplerAddressMode = vk.SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
)

type SamplerCreateInfo

type SamplerCreateInfo struct {
	MagFilter  SamplerFilter
	MinFilter  SamplerFilter
	MipMapMode SamplerMipMapMode
	BorderMode SamplerAddressMode
	Anisotropy float32
}

type SamplerFilter

type SamplerFilter C.VkFilter
const (
	SamplerFilterNearest  SamplerFilter = vk.FILTER_NEAREST
	SamplerFilterLinear   SamplerFilter = vk.FILTER_LINEAR
	SamplerFilterCubicExt SamplerFilter = vk.FILTER_CUBIC_EXT
)

type SamplerMipMapMode

type SamplerMipMapMode C.VkSamplerMipmapMode
const (
	SamplerMipMapModeNearest SamplerMipMapMode = vk.SAMPLER_MIPMAP_MODE_NEAREST
	SamplerMipMapModeLinear  SamplerMipMapMode = vk.SAMPLER_MIPMAP_MODE_LINEAR
)

type SemaphoreSignalInfo

type SemaphoreSignalInfo struct {
	Semaphore SemaphoreSignaler
	Stage     PipelineStage
}

type SemaphoreSignaler

type SemaphoreSignaler interface {
	// contains filtered or unexported methods
}

type SemaphoreWaitInfo

type SemaphoreWaitInfo struct {
	Semaphore SemaphoreWaiter
	Stage     PipelineStage
}

type SemaphoreWaiter

type SemaphoreWaiter interface {
	// contains filtered or unexported methods
}

type Shader

type Shader struct {
	ID    string
	SPIRV []uint32
}

type ShaderBindingInfo

type ShaderBindingInfo struct {
	DescriptorType DescriptorType
	Set, Binding   int
}

func (ShaderBindingInfo) Info

type ShaderBindingMetadata

type ShaderBindingMetadata interface {
	Info() ShaderBindingInfo
	ValidateDescriptor(info DescriptorInfo) error
	// contains filtered or unexported methods
}

type ShaderBindingTypeBufferMetadata

type ShaderBindingTypeBufferMetadata struct {
	ShaderBindingInfo
	Size               uint64
	RuntimeArrayStride uint64
}

func (ShaderBindingTypeBufferMetadata) ValidateDescriptor

func (b ShaderBindingTypeBufferMetadata) ValidateDescriptor(info DescriptorInfo) error

type ShaderBindingTypeImageMetadata

type ShaderBindingTypeImageMetadata struct {
	ShaderBindingInfo
	ViewType ImageViewType
}

func (ShaderBindingTypeImageMetadata) ValidateDescriptor

func (i ShaderBindingTypeImageMetadata) ValidateDescriptor(info DescriptorInfo) error

type ShaderBindingTypeSamplerMetadata

type ShaderBindingTypeSamplerMetadata struct{ ShaderBindingInfo }

func (ShaderBindingTypeSamplerMetadata) ValidateDescriptor

func (b ShaderBindingTypeSamplerMetadata) ValidateDescriptor(info DescriptorInfo) error

type ShaderConstant

type ShaderConstant struct {
	Value          uint32
	IsSpecConstant bool
}

type ShaderEntryPointComputeLayout

type ShaderEntryPointComputeLayout struct {
	Name      string
	LocalSize [3]ShaderConstant
}

func (ShaderEntryPointComputeLayout) EntryPointName

func (l ShaderEntryPointComputeLayout) EntryPointName() string

func (ShaderEntryPointComputeLayout) ShaderStage

type ShaderEntryPointFragmentLayout

type ShaderEntryPointFragmentLayout struct {
	Name                      string
	NumRenderColorAttachments uint32
}

func (ShaderEntryPointFragmentLayout) EntryPointName

func (l ShaderEntryPointFragmentLayout) EntryPointName() string

func (ShaderEntryPointFragmentLayout) ShaderStage

type ShaderEntryPointLayout

type ShaderEntryPointLayout interface {
	EntryPointName() string
	ShaderStage() ShaderStage
	// contains filtered or unexported methods
}

type ShaderEntryPointUnknownLayout

type ShaderEntryPointUnknownLayout struct {
	Name  string
	Stage ShaderStage
}

func (ShaderEntryPointUnknownLayout) EntryPointName

func (l ShaderEntryPointUnknownLayout) EntryPointName() string

func (ShaderEntryPointUnknownLayout) ShaderStage

type ShaderEntryPointVertexLayout

type ShaderEntryPointVertexLayout struct{ Name string }

func (ShaderEntryPointVertexLayout) EntryPointName

func (l ShaderEntryPointVertexLayout) EntryPointName() string

func (ShaderEntryPointVertexLayout) ShaderStage

type ShaderLayout

type ShaderLayout struct {
	EntryPoints   map[string]ShaderEntryPointLayout
	PushConstants struct {
		Offset uint32
		Size   uint32
	}
	DescriptorSetLayouts [][]struct {
		DescriptorType  DescriptorType
		DescriptorCount ShaderConstant
	}
}

func (*ShaderLayout) Validate

func (l *ShaderLayout) Validate() error

type ShaderMetadata

type ShaderMetadata struct {
	SpecConstants []struct {
		Name    string
		Default uint32
	}
	DescriptorSetBindings map[string]ShaderBindingMetadata
}

type ShaderStage

type ShaderStage C.VkShaderStageFlagBits
const (
	ShaderStageVertex   ShaderStage = vk.SHADER_STAGE_VERTEX_BIT
	ShaderStageFragment ShaderStage = vk.SHADER_STAGE_FRAGMENT_BIT
	ShaderStageGraphics ShaderStage = vk.SHADER_STAGE_ALL_GRAPHICS
	ShaderStageCompute  ShaderStage = vk.SHADER_STAGE_COMPUTE_BIT
	ShaderStageAll      ShaderStage = vk.SHADER_STAGE_ALL
)

func (ShaderStage) String

func (s ShaderStage) String() string

type Surface

type Surface struct {
	// contains filtered or unexported fields
}

func (*Surface) Extent

func (s *Surface) Extent() gmath.Extent3i32

func (*Surface) Format

func (s *Surface) Format() Format

type SurfaceInfo

type SurfaceInfo struct {
	Extent            gmath.Extent3i32
	Format            Format
	NumFramesInFlight int32
}

func CurrentSurfaceInfo

func CurrentSurfaceInfo() SurfaceInfo

type TimelineSemaphore

type TimelineSemaphore struct {
	// contains filtered or unexported fields
}

func NewTimelineSemaphore

func NewTimelineSemaphore(name string) *TimelineSemaphore

func (*TimelineSemaphore) Destroy

func (s *TimelineSemaphore) Destroy()

func (*TimelineSemaphore) Promise

func (*TimelineSemaphore) Value

func (s *TimelineSemaphore) Value() uint64

func (*TimelineSemaphore) Wait

func (s *TimelineSemaphore) Wait()

func (*TimelineSemaphore) WaiterForCurrentValue

func (s *TimelineSemaphore) WaiterForCurrentValue() *TimelineSemaphoreWaiter

func (*TimelineSemaphore) WaiterForPendingValue

func (s *TimelineSemaphore) WaiterForPendingValue() *TimelineSemaphoreWaiter

type TimelineSemaphorePromise

type TimelineSemaphorePromise struct {
	// contains filtered or unexported fields
}

func (*TimelineSemaphorePromise) Signal

func (p *TimelineSemaphorePromise) Signal()

func (*TimelineSemaphorePromise) Value

func (p *TimelineSemaphorePromise) Value() uint64

type TimelineSemaphoreWaiter

type TimelineSemaphoreWaiter struct {
	// contains filtered or unexported fields
}

func (*TimelineSemaphoreWaiter) Poll

func (w *TimelineSemaphoreWaiter) Poll() bool

func (*TimelineSemaphoreWaiter) Value

func (w *TimelineSemaphoreWaiter) Value() uint64

func (*TimelineSemaphoreWaiter) Wait

func (w *TimelineSemaphoreWaiter) Wait()

type UUID

type UUID [16]byte

func (*UUID) String

func (uuid *UUID) String() string

func (*UUID) UnmarshalText

func (uuid *UUID) UnmarshalText(data []byte) error

type VendorID

type VendorID uint32
const (
	VendorAMD    VendorID = 0x1002
	VendorNVIDIA VendorID = 0x10de
	VendorIntel  VendorID = 0x8086
)

func (VendorID) String

func (id VendorID) String() string

type VertexInputPipeline

type VertexInputPipeline struct {
	// contains filtered or unexported fields
}

type VertexInputPipelineCreateInfo

type VertexInputPipelineCreateInfo struct {
	Topology VertexTopology
}

type VertexTopology

type VertexTopology uint32
const (
	VertexTopologyPointList                  VertexTopology = vk.PRIMITIVE_TOPOLOGY_POINT_LIST
	VertexTopologyLineList                   VertexTopology = vk.PRIMITIVE_TOPOLOGY_LINE_LIST
	VertexTopologyLineStrip                  VertexTopology = vk.PRIMITIVE_TOPOLOGY_LINE_STRIP
	VertexTopologyTriangleList               VertexTopology = vk.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
	VertexTopologyTriangleStrip              VertexTopology = vk.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
	VertexTopologyTriangleFan                VertexTopology = vk.PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
	VertexTopologyLineListWithAdjacency      VertexTopology = vk.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
	VertexTopologyLineStripWithAdjacency     VertexTopology = vk.PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
	VertexTopologyTriangleListWithAdjacency  VertexTopology = vk.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
	VertexTopologyTriangleStripWithAdjacency VertexTopology = vk.PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
	VertexTopologyPatchList                  VertexTopology = vk.PRIMITIVE_TOPOLOGY_PATCH_LIST
)

type VkFeatureStruct

type VkFeatureStruct interface {
	// contains filtered or unexported methods
}

type VkPhysicalDevice16BitStorageFeatures

type VkPhysicalDevice16BitStorageFeatures struct {
	StorageBuffer16BitAccess           bool
	UniformAndStorageBuffer16BitAccess bool
	StoragePushConstant16              bool
	StorageInputOutput16               bool
}

type VkPhysicalDevice8BitStorageFeatures

type VkPhysicalDevice8BitStorageFeatures struct {
	StorageBuffer8BitAccess           bool
	UniformAndStorageBuffer8BitAccess bool
	StoragePushConstant8              bool
}

type VkPhysicalDeviceASTCDecodeFeaturesEXT

type VkPhysicalDeviceASTCDecodeFeaturesEXT struct {
	DecodeModeSharedExponent bool
}

type VkPhysicalDeviceAccelerationStructureFeaturesKHR

type VkPhysicalDeviceAccelerationStructureFeaturesKHR struct {
	AccelerationStructure                                 bool
	AccelerationStructureCaptureReplay                    bool
	AccelerationStructureIndirectBuild                    bool
	AccelerationStructureHostCommands                     bool
	DescriptorBindingAccelerationStructureUpdateAfterBind bool
}

type VkPhysicalDeviceAddressBindingReportFeaturesEXT

type VkPhysicalDeviceAddressBindingReportFeaturesEXT struct {
	ReportAddressBinding bool
}

type VkPhysicalDeviceAmigoProfilingFeaturesSEC

type VkPhysicalDeviceAmigoProfilingFeaturesSEC struct {
	AmigoProfiling bool
}

type VkPhysicalDeviceAntiLagFeaturesAMD

type VkPhysicalDeviceAntiLagFeaturesAMD struct {
	AntiLag bool
}

type VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT

type VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT struct {
	AttachmentFeedbackLoopDynamicState bool
}

type VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT

type VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT struct {
	AttachmentFeedbackLoopLayout bool
}

type VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT

type VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT struct {
	AdvancedBlendCoherentOperations bool
}

type VkPhysicalDeviceBorderColorSwizzleFeaturesEXT

type VkPhysicalDeviceBorderColorSwizzleFeaturesEXT struct {
	BorderColorSwizzle          bool
	BorderColorSwizzleFromImage bool
}

type VkPhysicalDeviceBufferDeviceAddressFeatures

type VkPhysicalDeviceBufferDeviceAddressFeatures struct {
	BufferDeviceAddress              bool
	BufferDeviceAddressCaptureReplay bool
	BufferDeviceAddressMultiDevice   bool
}

type VkPhysicalDeviceClusterAccelerationStructureFeaturesNV

type VkPhysicalDeviceClusterAccelerationStructureFeaturesNV struct {
	ClusterAccelerationStructure bool
}

type VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI

type VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI struct {
	ClustercullingShader          bool
	MultiviewClusterCullingShader bool
}

type VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI

type VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI struct {
	ClusterShadingRate bool
}

type VkPhysicalDeviceCoherentMemoryFeaturesAMD

type VkPhysicalDeviceCoherentMemoryFeaturesAMD struct {
	DeviceCoherentMemory bool
}

type VkPhysicalDeviceColorWriteEnableFeaturesEXT

type VkPhysicalDeviceColorWriteEnableFeaturesEXT struct {
	ColorWriteEnable bool
}

type VkPhysicalDeviceCommandBufferInheritanceFeaturesNV

type VkPhysicalDeviceCommandBufferInheritanceFeaturesNV struct {
	CommandBufferInheritance bool
}

type VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR

type VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR struct {
	ComputeDerivativeGroupQuads  bool
	ComputeDerivativeGroupLinear bool
}

type VkPhysicalDeviceComputeShaderDerivativesFeaturesNV

type VkPhysicalDeviceComputeShaderDerivativesFeaturesNV struct {
	ComputeDerivativeGroupQuads  bool
	ComputeDerivativeGroupLinear bool
}

type VkPhysicalDeviceConditionalRenderingFeaturesEXT

type VkPhysicalDeviceConditionalRenderingFeaturesEXT struct {
	ConditionalRendering          bool
	InheritedConditionalRendering bool
}

type VkPhysicalDeviceCooperativeMatrix2FeaturesNV

type VkPhysicalDeviceCooperativeMatrix2FeaturesNV struct {
	CooperativeMatrixWorkgroupScope       bool
	CooperativeMatrixFlexibleDimensions   bool
	CooperativeMatrixReductions           bool
	CooperativeMatrixConversions          bool
	CooperativeMatrixPerElementOperations bool
	CooperativeMatrixTensorAddressing     bool
	CooperativeMatrixBlockLoads           bool
}

type VkPhysicalDeviceCooperativeMatrixFeaturesKHR

type VkPhysicalDeviceCooperativeMatrixFeaturesKHR struct {
	CooperativeMatrix                   bool
	CooperativeMatrixRobustBufferAccess bool
}

type VkPhysicalDeviceCooperativeMatrixFeaturesNV

type VkPhysicalDeviceCooperativeMatrixFeaturesNV struct {
	CooperativeMatrix                   bool
	CooperativeMatrixRobustBufferAccess bool
}

type VkPhysicalDeviceCooperativeVectorFeaturesNV

type VkPhysicalDeviceCooperativeVectorFeaturesNV struct {
	CooperativeVector         bool
	CooperativeVectorTraining bool
}

type VkPhysicalDeviceCopyMemoryIndirectFeaturesNV

type VkPhysicalDeviceCopyMemoryIndirectFeaturesNV struct {
	IndirectCopy bool
}

type VkPhysicalDeviceCornerSampledImageFeaturesNV

type VkPhysicalDeviceCornerSampledImageFeaturesNV struct {
	CornerSampledImage bool
}

type VkPhysicalDeviceCoverageReductionModeFeaturesNV

type VkPhysicalDeviceCoverageReductionModeFeaturesNV struct {
	CoverageReductionMode bool
}

type VkPhysicalDeviceCubicClampFeaturesQCOM

type VkPhysicalDeviceCubicClampFeaturesQCOM struct {
	CubicRangeClamp bool
}

type VkPhysicalDeviceCubicWeightsFeaturesQCOM

type VkPhysicalDeviceCubicWeightsFeaturesQCOM struct {
	SelectableCubicWeights bool
}

type VkPhysicalDeviceCustomBorderColorFeaturesEXT

type VkPhysicalDeviceCustomBorderColorFeaturesEXT struct {
	CustomBorderColors             bool
	CustomBorderColorWithoutFormat bool
}

type VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV

type VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV struct {
	DedicatedAllocationImageAliasing bool
}

type VkPhysicalDeviceDepthBiasControlFeaturesEXT

type VkPhysicalDeviceDepthBiasControlFeaturesEXT struct {
	DepthBiasControl                                bool
	LeastRepresentableValueForceUnormRepresentation bool
	FloatRepresentation                             bool
	DepthBiasExact                                  bool
}

type VkPhysicalDeviceDepthClampControlFeaturesEXT

type VkPhysicalDeviceDepthClampControlFeaturesEXT struct {
	DepthClampControl bool
}

type VkPhysicalDeviceDepthClampZeroOneFeaturesEXT

type VkPhysicalDeviceDepthClampZeroOneFeaturesEXT struct {
	DepthClampZeroOne bool
}

type VkPhysicalDeviceDepthClampZeroOneFeaturesKHR

type VkPhysicalDeviceDepthClampZeroOneFeaturesKHR struct {
	DepthClampZeroOne bool
}

type VkPhysicalDeviceDepthClipControlFeaturesEXT

type VkPhysicalDeviceDepthClipControlFeaturesEXT struct {
	DepthClipControl bool
}

type VkPhysicalDeviceDepthClipEnableFeaturesEXT

type VkPhysicalDeviceDepthClipEnableFeaturesEXT struct {
	DepthClipEnable bool
}

type VkPhysicalDeviceDescriptorBufferFeaturesEXT

type VkPhysicalDeviceDescriptorBufferFeaturesEXT struct {
	DescriptorBuffer                   bool
	DescriptorBufferCaptureReplay      bool
	DescriptorBufferImageLayoutIgnored bool
	DescriptorBufferPushDescriptors    bool
}

type VkPhysicalDeviceDescriptorIndexingFeatures

type VkPhysicalDeviceDescriptorIndexingFeatures struct {
	ShaderInputAttachmentArrayDynamicIndexing          bool
	ShaderUniformTexelBufferArrayDynamicIndexing       bool
	ShaderStorageTexelBufferArrayDynamicIndexing       bool
	ShaderUniformBufferArrayNonUniformIndexing         bool
	ShaderSampledImageArrayNonUniformIndexing          bool
	ShaderStorageBufferArrayNonUniformIndexing         bool
	ShaderStorageImageArrayNonUniformIndexing          bool
	ShaderInputAttachmentArrayNonUniformIndexing       bool
	ShaderUniformTexelBufferArrayNonUniformIndexing    bool
	ShaderStorageTexelBufferArrayNonUniformIndexing    bool
	DescriptorBindingUniformBufferUpdateAfterBind      bool
	DescriptorBindingSampledImageUpdateAfterBind       bool
	DescriptorBindingStorageImageUpdateAfterBind       bool
	DescriptorBindingStorageBufferUpdateAfterBind      bool
	DescriptorBindingUniformTexelBufferUpdateAfterBind bool
	DescriptorBindingStorageTexelBufferUpdateAfterBind bool
	DescriptorBindingUpdateUnusedWhilePending          bool
	DescriptorBindingPartiallyBound                    bool
	DescriptorBindingVariableDescriptorCount           bool
	RuntimeDescriptorArray                             bool
}

type VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV

type VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV struct {
	DescriptorPoolOverallocation bool
}

type VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE

type VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE struct {
	DescriptorSetHostMapping bool
}

type VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV

type VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV struct {
	DeviceGeneratedCompute              bool
	DeviceGeneratedComputePipelines     bool
	DeviceGeneratedComputeCaptureReplay bool
}

type VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT

type VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT struct {
	DeviceGeneratedCommands        bool
	DynamicGeneratedPipelineLayout bool
}

type VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV

type VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV struct {
	DeviceGeneratedCommands bool
}

type VkPhysicalDeviceDeviceMemoryReportFeaturesEXT

type VkPhysicalDeviceDeviceMemoryReportFeaturesEXT struct {
	DeviceMemoryReport bool
}

type VkPhysicalDeviceDiagnosticsConfigFeaturesNV

type VkPhysicalDeviceDiagnosticsConfigFeaturesNV struct {
	DiagnosticsConfig bool
}

type VkPhysicalDeviceDynamicRenderingFeatures

type VkPhysicalDeviceDynamicRenderingFeatures struct {
	DynamicRendering bool
}

type VkPhysicalDeviceDynamicRenderingLocalReadFeatures

type VkPhysicalDeviceDynamicRenderingLocalReadFeatures struct {
	DynamicRenderingLocalRead bool
}

type VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR

type VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR struct {
	DynamicRenderingLocalRead bool
}

type VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT

type VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT struct {
	DynamicRenderingUnusedAttachments bool
}

type VkPhysicalDeviceExclusiveScissorFeaturesNV

type VkPhysicalDeviceExclusiveScissorFeaturesNV struct {
	ExclusiveScissor bool
}

type VkPhysicalDeviceExtendedDynamicState3FeaturesEXT

type VkPhysicalDeviceExtendedDynamicState3FeaturesEXT struct {
	ExtendedDynamicState3TessellationDomainOrigin         bool
	ExtendedDynamicState3DepthClampEnable                 bool
	ExtendedDynamicState3PolygonMode                      bool
	ExtendedDynamicState3RasterizationSamples             bool
	ExtendedDynamicState3SampleMask                       bool
	ExtendedDynamicState3AlphaToCoverageEnable            bool
	ExtendedDynamicState3AlphaToOneEnable                 bool
	ExtendedDynamicState3LogicOpEnable                    bool
	ExtendedDynamicState3ColorBlendEnable                 bool
	ExtendedDynamicState3ColorBlendEquation               bool
	ExtendedDynamicState3ColorWriteMask                   bool
	ExtendedDynamicState3RasterizationStream              bool
	ExtendedDynamicState3ConservativeRasterizationMode    bool
	ExtendedDynamicState3ExtraPrimitiveOverestimationSize bool
	ExtendedDynamicState3DepthClipEnable                  bool
	ExtendedDynamicState3SampleLocationsEnable            bool
	ExtendedDynamicState3ColorBlendAdvanced               bool
	ExtendedDynamicState3ProvokingVertexMode              bool
	ExtendedDynamicState3LineRasterizationMode            bool
	ExtendedDynamicState3LineStippleEnable                bool
	ExtendedDynamicState3DepthClipNegativeOneToOne        bool
	ExtendedDynamicState3ViewportWScalingEnable           bool
	ExtendedDynamicState3ViewportSwizzle                  bool
	ExtendedDynamicState3CoverageToColorEnable            bool
	ExtendedDynamicState3CoverageToColorLocation          bool
	ExtendedDynamicState3CoverageModulationMode           bool
	ExtendedDynamicState3CoverageModulationTableEnable    bool
	ExtendedDynamicState3CoverageModulationTable          bool
	ExtendedDynamicState3CoverageReductionMode            bool
	ExtendedDynamicState3RepresentativeFragmentTestEnable bool
	ExtendedDynamicState3ShadingRateImageEnable           bool
}

type VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV

type VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV struct {
	ExtendedSparseAddressSpace bool
}

type VkPhysicalDeviceExternalMemoryRDMAFeaturesNV

type VkPhysicalDeviceExternalMemoryRDMAFeaturesNV struct {
	ExternalMemoryRDMA bool
}

type VkPhysicalDeviceFaultFeaturesEXT

type VkPhysicalDeviceFaultFeaturesEXT struct {
	DeviceFault             bool
	DeviceFaultVendorBinary bool
}

type VkPhysicalDeviceFeatures

type VkPhysicalDeviceFeatures struct {
	RobustBufferAccess                      bool
	FullDrawIndexUint32                     bool
	ImageCubeArray                          bool
	IndependentBlend                        bool
	GeometryShader                          bool
	TessellationShader                      bool
	SampleRateShading                       bool
	DualSrcBlend                            bool
	LogicOp                                 bool
	MultiDrawIndirect                       bool
	DrawIndirectFirstInstance               bool
	DepthClamp                              bool
	DepthBiasClamp                          bool
	FillModeNonSolid                        bool
	DepthBounds                             bool
	WideLines                               bool
	LargePoints                             bool
	AlphaToOne                              bool
	MultiViewport                           bool
	SamplerAnisotropy                       bool
	TextureCompressionETC2                  bool
	TextureCompressionASTC_LDR              bool
	TextureCompressionBC                    bool
	OcclusionQueryPrecise                   bool
	PipelineStatisticsQuery                 bool
	VertexPipelineStoresAndAtomics          bool
	FragmentStoresAndAtomics                bool
	ShaderTessellationAndGeometryPointSize  bool
	ShaderImageGatherExtended               bool
	ShaderStorageImageExtendedFormats       bool
	ShaderStorageImageMultisample           bool
	ShaderStorageImageReadWithoutFormat     bool
	ShaderStorageImageWriteWithoutFormat    bool
	ShaderUniformBufferArrayDynamicIndexing bool
	ShaderSampledImageArrayDynamicIndexing  bool
	ShaderStorageBufferArrayDynamicIndexing bool
	ShaderStorageImageArrayDynamicIndexing  bool
	ShaderClipDistance                      bool
	ShaderCullDistance                      bool
	ShaderFloat64                           bool
	ShaderInt64                             bool
	ShaderInt16                             bool
	ShaderResourceResidency                 bool
	ShaderResourceMinLod                    bool
	SparseBinding                           bool
	SparseResidencyBuffer                   bool
	SparseResidencyImage2D                  bool
	SparseResidencyImage3D                  bool
	SparseResidency2Samples                 bool
	SparseResidency4Samples                 bool
	SparseResidency8Samples                 bool
	SparseResidency16Samples                bool
	SparseResidencyAliased                  bool
	VariableMultisampleRate                 bool
	InheritedQueries                        bool
}

type VkPhysicalDeviceFragmentDensityMap2FeaturesEXT

type VkPhysicalDeviceFragmentDensityMap2FeaturesEXT struct {
	FragmentDensityMapDeferred bool
}

type VkPhysicalDeviceFragmentDensityMapFeaturesEXT

type VkPhysicalDeviceFragmentDensityMapFeaturesEXT struct {
	FragmentDensityMap                    bool
	FragmentDensityMapDynamic             bool
	FragmentDensityMapNonSubsampledImages bool
}

type VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM

type VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM struct {
	FragmentDensityMapOffset bool
}

type VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR

type VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR struct {
	FragmentShaderBarycentric bool
}

type VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV

type VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV struct {
	FragmentShaderBarycentric bool
}

type VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT

type VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT struct {
	FragmentShaderSampleInterlock      bool
	FragmentShaderPixelInterlock       bool
	FragmentShaderShadingRateInterlock bool
}

type VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV

type VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV struct {
	FragmentShadingRateEnums         bool
	SupersampleFragmentShadingRates  bool
	NoInvocationFragmentShadingRates bool
}

type VkPhysicalDeviceFragmentShadingRateFeaturesKHR

type VkPhysicalDeviceFragmentShadingRateFeaturesKHR struct {
	PipelineFragmentShadingRate   bool
	PrimitiveFragmentShadingRate  bool
	AttachmentFragmentShadingRate bool
}

type VkPhysicalDeviceFrameBoundaryFeaturesEXT

type VkPhysicalDeviceFrameBoundaryFeaturesEXT struct {
	FrameBoundary bool
}

type VkPhysicalDeviceGlobalPriorityQueryFeatures

type VkPhysicalDeviceGlobalPriorityQueryFeatures struct {
	GlobalPriorityQuery bool
}

type VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT

type VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT struct {
	GlobalPriorityQuery bool
}

type VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR

type VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR struct {
	GlobalPriorityQuery bool
}

type VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT

type VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT struct {
	GraphicsPipelineLibrary bool
}

type VkPhysicalDeviceHdrVividFeaturesHUAWEI

type VkPhysicalDeviceHdrVividFeaturesHUAWEI struct {
	HdrVivid bool
}

type VkPhysicalDeviceHostImageCopyFeatures

type VkPhysicalDeviceHostImageCopyFeatures struct {
	HostImageCopy bool
}

type VkPhysicalDeviceHostImageCopyFeaturesEXT

type VkPhysicalDeviceHostImageCopyFeaturesEXT struct {
	HostImageCopy bool
}

type VkPhysicalDeviceHostQueryResetFeatures

type VkPhysicalDeviceHostQueryResetFeatures struct {
	HostQueryReset bool
}

type VkPhysicalDeviceImage2DViewOf3DFeaturesEXT

type VkPhysicalDeviceImage2DViewOf3DFeaturesEXT struct {
	Image2DViewOf3D   bool
	Sampler2DViewOf3D bool
}

type VkPhysicalDeviceImageAlignmentControlFeaturesMESA

type VkPhysicalDeviceImageAlignmentControlFeaturesMESA struct {
	ImageAlignmentControl bool
}

type VkPhysicalDeviceImageCompressionControlFeaturesEXT

type VkPhysicalDeviceImageCompressionControlFeaturesEXT struct {
	ImageCompressionControl bool
}

type VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT

type VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT struct {
	ImageCompressionControlSwapchain bool
}

type VkPhysicalDeviceImageProcessing2FeaturesQCOM

type VkPhysicalDeviceImageProcessing2FeaturesQCOM struct {
	TextureBlockMatch2 bool
}

type VkPhysicalDeviceImageProcessingFeaturesQCOM

type VkPhysicalDeviceImageProcessingFeaturesQCOM struct {
	TextureSampleWeighted bool
	TextureBoxFilter      bool
	TextureBlockMatch     bool
}

type VkPhysicalDeviceImageRobustnessFeatures

type VkPhysicalDeviceImageRobustnessFeatures struct {
	RobustImageAccess bool
}

type VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT

type VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT struct {
	ImageSlicedViewOf3D bool
}

type VkPhysicalDeviceImageViewMinLodFeaturesEXT

type VkPhysicalDeviceImageViewMinLodFeaturesEXT struct {
	MinLod bool
}

type VkPhysicalDeviceImagelessFramebufferFeatures

type VkPhysicalDeviceImagelessFramebufferFeatures struct {
	ImagelessFramebuffer bool
}

type VkPhysicalDeviceIndexTypeUint8Features

type VkPhysicalDeviceIndexTypeUint8Features struct {
	IndexTypeUint8 bool
}

type VkPhysicalDeviceIndexTypeUint8FeaturesEXT

type VkPhysicalDeviceIndexTypeUint8FeaturesEXT struct {
	IndexTypeUint8 bool
}

type VkPhysicalDeviceIndexTypeUint8FeaturesKHR

type VkPhysicalDeviceIndexTypeUint8FeaturesKHR struct {
	IndexTypeUint8 bool
}

type VkPhysicalDeviceInheritedViewportScissorFeaturesNV

type VkPhysicalDeviceInheritedViewportScissorFeaturesNV struct {
	InheritedViewportScissor2D bool
}

type VkPhysicalDeviceInlineUniformBlockFeatures

type VkPhysicalDeviceInlineUniformBlockFeatures struct {
	InlineUniformBlock                                 bool
	DescriptorBindingInlineUniformBlockUpdateAfterBind bool
}

type VkPhysicalDeviceInvocationMaskFeaturesHUAWEI

type VkPhysicalDeviceInvocationMaskFeaturesHUAWEI struct {
	InvocationMask bool
}

type VkPhysicalDeviceLegacyDitheringFeaturesEXT

type VkPhysicalDeviceLegacyDitheringFeaturesEXT struct {
	LegacyDithering bool
}

type VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT

type VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT struct {
	LegacyVertexAttributes bool
}

type VkPhysicalDeviceLineRasterizationFeatures

type VkPhysicalDeviceLineRasterizationFeatures struct {
	RectangularLines         bool
	BresenhamLines           bool
	SmoothLines              bool
	StippledRectangularLines bool
	StippledBresenhamLines   bool
	StippledSmoothLines      bool
}

type VkPhysicalDeviceLineRasterizationFeaturesEXT

type VkPhysicalDeviceLineRasterizationFeaturesEXT struct {
	RectangularLines         bool
	BresenhamLines           bool
	SmoothLines              bool
	StippledRectangularLines bool
	StippledBresenhamLines   bool
	StippledSmoothLines      bool
}

type VkPhysicalDeviceLineRasterizationFeaturesKHR

type VkPhysicalDeviceLineRasterizationFeaturesKHR struct {
	RectangularLines         bool
	BresenhamLines           bool
	SmoothLines              bool
	StippledRectangularLines bool
	StippledBresenhamLines   bool
	StippledSmoothLines      bool
}

type VkPhysicalDeviceLinearColorAttachmentFeaturesNV

type VkPhysicalDeviceLinearColorAttachmentFeaturesNV struct {
	LinearColorAttachment bool
}

type VkPhysicalDeviceMaintenance4Features

type VkPhysicalDeviceMaintenance4Features struct {
	Maintenance4 bool
}

type VkPhysicalDeviceMaintenance5Features

type VkPhysicalDeviceMaintenance5Features struct {
	Maintenance5 bool
}

type VkPhysicalDeviceMaintenance5FeaturesKHR

type VkPhysicalDeviceMaintenance5FeaturesKHR struct {
	Maintenance5 bool
}

type VkPhysicalDeviceMaintenance6Features

type VkPhysicalDeviceMaintenance6Features struct {
	Maintenance6 bool
}

type VkPhysicalDeviceMaintenance6FeaturesKHR

type VkPhysicalDeviceMaintenance6FeaturesKHR struct {
	Maintenance6 bool
}

type VkPhysicalDeviceMaintenance7FeaturesKHR

type VkPhysicalDeviceMaintenance7FeaturesKHR struct {
	Maintenance7 bool
}

type VkPhysicalDeviceMaintenance8FeaturesKHR

type VkPhysicalDeviceMaintenance8FeaturesKHR struct {
	Maintenance8 bool
}

type VkPhysicalDeviceMapMemoryPlacedFeaturesEXT

type VkPhysicalDeviceMapMemoryPlacedFeaturesEXT struct {
	MemoryMapPlaced      bool
	MemoryMapRangePlaced bool
	MemoryUnmapReserve   bool
}

type VkPhysicalDeviceMemoryDecompressionFeaturesNV

type VkPhysicalDeviceMemoryDecompressionFeaturesNV struct {
	MemoryDecompression bool
}

type VkPhysicalDeviceMemoryPriorityFeaturesEXT

type VkPhysicalDeviceMemoryPriorityFeaturesEXT struct {
	MemoryPriority bool
}

type VkPhysicalDeviceMeshShaderFeaturesEXT

type VkPhysicalDeviceMeshShaderFeaturesEXT struct {
	TaskShader                             bool
	MeshShader                             bool
	MultiviewMeshShader                    bool
	PrimitiveFragmentShadingRateMeshShader bool
	MeshShaderQueries                      bool
}

type VkPhysicalDeviceMeshShaderFeaturesNV

type VkPhysicalDeviceMeshShaderFeaturesNV struct {
	TaskShader bool
	MeshShader bool
}

type VkPhysicalDeviceMultiDrawFeaturesEXT

type VkPhysicalDeviceMultiDrawFeaturesEXT struct {
	MultiDraw bool
}

type VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT

type VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT struct {
	MultisampledRenderToSingleSampled bool
}

type VkPhysicalDeviceMultiviewFeatures

type VkPhysicalDeviceMultiviewFeatures struct {
	Multiview                   bool
	MultiviewGeometryShader     bool
	MultiviewTessellationShader bool
}

type VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM

type VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM struct {
	MultiviewPerViewRenderAreas bool
}

type VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM

type VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM struct {
	MultiviewPerViewViewports bool
}

type VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT

type VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT struct {
	MutableDescriptorType bool
}

type VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE

type VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE struct {
	MutableDescriptorType bool
}

type VkPhysicalDeviceNestedCommandBufferFeaturesEXT

type VkPhysicalDeviceNestedCommandBufferFeaturesEXT struct {
	NestedCommandBuffer                bool
	NestedCommandBufferRendering       bool
	NestedCommandBufferSimultaneousUse bool
}

type VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT

type VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT struct {
	NonSeamlessCubeMap bool
}

type VkPhysicalDeviceOpacityMicromapFeaturesEXT

type VkPhysicalDeviceOpacityMicromapFeaturesEXT struct {
	Micromap              bool
	MicromapCaptureReplay bool
	MicromapHostCommands  bool
}

type VkPhysicalDeviceOpticalFlowFeaturesNV

type VkPhysicalDeviceOpticalFlowFeaturesNV struct {
	OpticalFlow bool
}

type VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT

type VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT struct {
	PageableDeviceLocalMemory bool
}

type VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV

type VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV struct {
	PartitionedAccelerationStructure bool
}

type VkPhysicalDevicePerStageDescriptorSetFeaturesNV

type VkPhysicalDevicePerStageDescriptorSetFeaturesNV struct {
	PerStageDescriptorSet bool
	DynamicPipelineLayout bool
}

type VkPhysicalDevicePerformanceQueryFeaturesKHR

type VkPhysicalDevicePerformanceQueryFeaturesKHR struct {
	PerformanceCounterQueryPools         bool
	PerformanceCounterMultipleQueryPools bool
}

type VkPhysicalDevicePipelineBinaryFeaturesKHR

type VkPhysicalDevicePipelineBinaryFeaturesKHR struct {
	PipelineBinaries bool
}

type VkPhysicalDevicePipelineCreationCacheControlFeatures

type VkPhysicalDevicePipelineCreationCacheControlFeatures struct {
	PipelineCreationCacheControl bool
}

type VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR

type VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR struct {
	PipelineExecutableInfo bool
}

type VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT

type VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT struct {
	PipelineLibraryGroupHandles bool
}

type VkPhysicalDevicePipelineOpacityMicromapFeaturesARM

type VkPhysicalDevicePipelineOpacityMicromapFeaturesARM struct {
	PipelineOpacityMicromap bool
}

type VkPhysicalDevicePipelinePropertiesFeaturesEXT

type VkPhysicalDevicePipelinePropertiesFeaturesEXT struct {
	PipelinePropertiesIdentifier bool
}

type VkPhysicalDevicePipelineProtectedAccessFeatures

type VkPhysicalDevicePipelineProtectedAccessFeatures struct {
	PipelineProtectedAccess bool
}

type VkPhysicalDevicePipelineProtectedAccessFeaturesEXT

type VkPhysicalDevicePipelineProtectedAccessFeaturesEXT struct {
	PipelineProtectedAccess bool
}

type VkPhysicalDevicePipelineRobustnessFeatures

type VkPhysicalDevicePipelineRobustnessFeatures struct {
	PipelineRobustness bool
}

type VkPhysicalDevicePipelineRobustnessFeaturesEXT

type VkPhysicalDevicePipelineRobustnessFeaturesEXT struct {
	PipelineRobustness bool
}

type VkPhysicalDevicePresentBarrierFeaturesNV

type VkPhysicalDevicePresentBarrierFeaturesNV struct {
	PresentBarrier bool
}

type VkPhysicalDevicePresentIdFeaturesKHR

type VkPhysicalDevicePresentIdFeaturesKHR struct {
	PresentId bool
}

type VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT

type VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT struct {
	PresentModeFifoLatestReady bool
}

type VkPhysicalDevicePresentWaitFeaturesKHR

type VkPhysicalDevicePresentWaitFeaturesKHR struct {
	PresentWait bool
}

type VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT

type VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT struct {
	PrimitiveTopologyListRestart      bool
	PrimitiveTopologyPatchListRestart bool
}

type VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT

type VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT struct {
	PrimitivesGeneratedQuery                      bool
	PrimitivesGeneratedQueryWithRasterizerDiscard bool
	PrimitivesGeneratedQueryWithNonZeroStreams    bool
}

type VkPhysicalDevicePrivateDataFeatures

type VkPhysicalDevicePrivateDataFeatures struct {
	PrivateData bool
}

type VkPhysicalDeviceProtectedMemoryFeatures

type VkPhysicalDeviceProtectedMemoryFeatures struct {
	ProtectedMemory bool
}

type VkPhysicalDeviceProvokingVertexFeaturesEXT

type VkPhysicalDeviceProvokingVertexFeaturesEXT struct {
	ProvokingVertexLast                       bool
	TransformFeedbackPreservesProvokingVertex bool
}

type VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT

type VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT struct {
	FormatRgba10x6WithoutYCbCrSampler bool
}

type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM

type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM struct {
	RasterizationOrderColorAttachmentAccess   bool
	RasterizationOrderDepthAttachmentAccess   bool
	RasterizationOrderStencilAttachmentAccess bool
}

type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT

type VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT struct {
	RasterizationOrderColorAttachmentAccess   bool
	RasterizationOrderDepthAttachmentAccess   bool
	RasterizationOrderStencilAttachmentAccess bool
}

type VkPhysicalDeviceRawAccessChainsFeaturesNV

type VkPhysicalDeviceRawAccessChainsFeaturesNV struct {
	ShaderRawAccessChains bool
}

type VkPhysicalDeviceRayQueryFeaturesKHR

type VkPhysicalDeviceRayQueryFeaturesKHR struct {
	RayQuery bool
}

type VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV

type VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV struct {
	RayTracingInvocationReorder bool
}

type VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV

type VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV struct {
	Spheres            bool
	LinearSweptSpheres bool
}

type VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR

type VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR struct {
	RayTracingMaintenance1               bool
	RayTracingPipelineTraceRaysIndirect2 bool
}

type VkPhysicalDeviceRayTracingMotionBlurFeaturesNV

type VkPhysicalDeviceRayTracingMotionBlurFeaturesNV struct {
	RayTracingMotionBlur                          bool
	RayTracingMotionBlurPipelineTraceRaysIndirect bool
}

type VkPhysicalDeviceRayTracingPipelineFeaturesKHR

type VkPhysicalDeviceRayTracingPipelineFeaturesKHR struct {
	RayTracingPipeline                                    bool
	RayTracingPipelineShaderGroupHandleCaptureReplay      bool
	RayTracingPipelineShaderGroupHandleCaptureReplayMixed bool
	RayTracingPipelineTraceRaysIndirect                   bool
	RayTraversalPrimitiveCulling                          bool
}

type VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR

type VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR struct {
	RayTracingPositionFetch bool
}

type VkPhysicalDeviceRayTracingValidationFeaturesNV

type VkPhysicalDeviceRayTracingValidationFeaturesNV struct {
	RayTracingValidation bool
}

type VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG

type VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG struct {
	RelaxedLineRasterization bool
}

type VkPhysicalDeviceRenderPassStripedFeaturesARM

type VkPhysicalDeviceRenderPassStripedFeaturesARM struct {
	RenderPassStriped bool
}

type VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV

type VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV struct {
	RepresentativeFragmentTest bool
}

type VkPhysicalDeviceRobustness2FeaturesEXT

type VkPhysicalDeviceRobustness2FeaturesEXT struct {
	RobustBufferAccess2 bool
	RobustImageAccess2  bool
	NullDescriptor      bool
}

type VkPhysicalDeviceSamplerYCbCrConversionFeatures

type VkPhysicalDeviceSamplerYCbCrConversionFeatures struct {
	SamplerYCbCrConversion bool
}

type VkPhysicalDeviceScalarBlockLayoutFeatures

type VkPhysicalDeviceScalarBlockLayoutFeatures struct {
	ScalarBlockLayout bool
}

type VkPhysicalDeviceSchedulingControlsFeaturesARM

type VkPhysicalDeviceSchedulingControlsFeaturesARM struct {
	SchedulingControls bool
}

type VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures

type VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures struct {
	SeparateDepthStencilLayouts bool
}

type VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV

type VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV struct {
	ShaderFloat16VectorAtomics bool
}

type VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT

type VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT struct {
	ShaderBufferFloat16Atomics      bool
	ShaderBufferFloat16AtomicAdd    bool
	ShaderBufferFloat16AtomicMinMax bool
	ShaderBufferFloat32AtomicMinMax bool
	ShaderBufferFloat64AtomicMinMax bool
	ShaderSharedFloat16Atomics      bool
	ShaderSharedFloat16AtomicAdd    bool
	ShaderSharedFloat16AtomicMinMax bool
	ShaderSharedFloat32AtomicMinMax bool
	ShaderSharedFloat64AtomicMinMax bool
	ShaderImageFloat32AtomicMinMax  bool
	SparseImageFloat32AtomicMinMax  bool
}

type VkPhysicalDeviceShaderAtomicFloatFeaturesEXT

type VkPhysicalDeviceShaderAtomicFloatFeaturesEXT struct {
	ShaderBufferFloat32Atomics   bool
	ShaderBufferFloat32AtomicAdd bool
	ShaderBufferFloat64Atomics   bool
	ShaderBufferFloat64AtomicAdd bool
	ShaderSharedFloat32Atomics   bool
	ShaderSharedFloat32AtomicAdd bool
	ShaderSharedFloat64Atomics   bool
	ShaderSharedFloat64AtomicAdd bool
	ShaderImageFloat32Atomics    bool
	ShaderImageFloat32AtomicAdd  bool
	SparseImageFloat32Atomics    bool
	SparseImageFloat32AtomicAdd  bool
}

type VkPhysicalDeviceShaderAtomicInt64Features

type VkPhysicalDeviceShaderAtomicInt64Features struct {
	ShaderBufferInt64Atomics bool
	ShaderSharedInt64Atomics bool
}

type VkPhysicalDeviceShaderClockFeaturesKHR

type VkPhysicalDeviceShaderClockFeaturesKHR struct {
	ShaderSubgroupClock bool
	ShaderDeviceClock   bool
}

type VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM

type VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM struct {
	ShaderCoreBuiltins bool
}

type VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures

type VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures struct {
	ShaderDemoteToHelperInvocation bool
}

type VkPhysicalDeviceShaderDrawParametersFeatures

type VkPhysicalDeviceShaderDrawParametersFeatures struct {
	ShaderDrawParameters bool
}

type VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD

type VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD struct {
	ShaderEarlyAndLateFragmentTests bool
}

type VkPhysicalDeviceShaderExpectAssumeFeatures

type VkPhysicalDeviceShaderExpectAssumeFeatures struct {
	ShaderExpectAssume bool
}

type VkPhysicalDeviceShaderExpectAssumeFeaturesKHR

type VkPhysicalDeviceShaderExpectAssumeFeaturesKHR struct {
	ShaderExpectAssume bool
}

type VkPhysicalDeviceShaderFloat16Int8Features

type VkPhysicalDeviceShaderFloat16Int8Features struct {
	ShaderFloat16 bool
	ShaderInt8    bool
}

type VkPhysicalDeviceShaderFloatControls2Features

type VkPhysicalDeviceShaderFloatControls2Features struct {
	ShaderFloatControls2 bool
}

type VkPhysicalDeviceShaderFloatControls2FeaturesKHR

type VkPhysicalDeviceShaderFloatControls2FeaturesKHR struct {
	ShaderFloatControls2 bool
}

type VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT

type VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT struct {
	ShaderImageInt64Atomics bool
	SparseImageInt64Atomics bool
}

type VkPhysicalDeviceShaderImageFootprintFeaturesNV

type VkPhysicalDeviceShaderImageFootprintFeaturesNV struct {
	ImageFootprint bool
}

type VkPhysicalDeviceShaderIntegerDotProductFeatures

type VkPhysicalDeviceShaderIntegerDotProductFeatures struct {
	ShaderIntegerDotProduct bool
}

type VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL

type VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL struct {
	ShaderIntegerFunctions2 bool
}

type VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR

type VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR struct {
	ShaderMaximalReconvergence bool
}

type VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT

type VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT struct {
	ShaderModuleIdentifier bool
}

type VkPhysicalDeviceShaderObjectFeaturesEXT

type VkPhysicalDeviceShaderObjectFeaturesEXT struct {
	ShaderObject bool
}

type VkPhysicalDeviceShaderQuadControlFeaturesKHR

type VkPhysicalDeviceShaderQuadControlFeaturesKHR struct {
	ShaderQuadControl bool
}

type VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR

type VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR struct {
	ShaderRelaxedExtendedInstruction bool
}

type VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT

type VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT struct {
	ShaderReplicatedComposites bool
}

type VkPhysicalDeviceShaderSMBuiltinsFeaturesNV

type VkPhysicalDeviceShaderSMBuiltinsFeaturesNV struct {
	ShaderSMBuiltins bool
}

type VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures

type VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures struct {
	ShaderSubgroupExtendedTypes bool
}

type VkPhysicalDeviceShaderSubgroupRotateFeatures

type VkPhysicalDeviceShaderSubgroupRotateFeatures struct {
	ShaderSubgroupRotate          bool
	ShaderSubgroupRotateClustered bool
}

type VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR

type VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR struct {
	ShaderSubgroupRotate          bool
	ShaderSubgroupRotateClustered bool
}

type VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR

type VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR struct {
	ShaderSubgroupUniformControlFlow bool
}

type VkPhysicalDeviceShaderTerminateInvocationFeatures

type VkPhysicalDeviceShaderTerminateInvocationFeatures struct {
	ShaderTerminateInvocation bool
}

type VkPhysicalDeviceShaderTileImageFeaturesEXT

type VkPhysicalDeviceShaderTileImageFeaturesEXT struct {
	ShaderTileImageColorReadAccess   bool
	ShaderTileImageDepthReadAccess   bool
	ShaderTileImageStencilReadAccess bool
}

type VkPhysicalDeviceShadingRateImageFeaturesNV

type VkPhysicalDeviceShadingRateImageFeaturesNV struct {
	ShadingRateImage             bool
	ShadingRateCoarseSampleOrder bool
}

type VkPhysicalDeviceSubgroupSizeControlFeatures

type VkPhysicalDeviceSubgroupSizeControlFeatures struct {
	SubgroupSizeControl  bool
	ComputeFullSubgroups bool
}

type VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT

type VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT struct {
	SubpassMergeFeedback bool
}

type VkPhysicalDeviceSubpassShadingFeaturesHUAWEI

type VkPhysicalDeviceSubpassShadingFeaturesHUAWEI struct {
	SubpassShading bool
}

type VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT

type VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT struct {
	SwapchainMaintenance1 bool
}

type VkPhysicalDeviceSynchronization2Features

type VkPhysicalDeviceSynchronization2Features struct {
	Synchronization2 bool
}

type VkPhysicalDeviceTextureCompressionASTCHDRFeatures

type VkPhysicalDeviceTextureCompressionASTCHDRFeatures struct {
	TextureCompressionASTC_HDR bool
}

type VkPhysicalDeviceTilePropertiesFeaturesQCOM

type VkPhysicalDeviceTilePropertiesFeaturesQCOM struct {
	TileProperties bool
}

type VkPhysicalDeviceTimelineSemaphoreFeatures

type VkPhysicalDeviceTimelineSemaphoreFeatures struct {
	TimelineSemaphore bool
}

type VkPhysicalDeviceTransformFeedbackFeaturesEXT

type VkPhysicalDeviceTransformFeedbackFeaturesEXT struct {
	TransformFeedback bool
	GeometryStreams   bool
}

type VkPhysicalDeviceUniformBufferStandardLayoutFeatures

type VkPhysicalDeviceUniformBufferStandardLayoutFeatures struct {
	UniformBufferStandardLayout bool
}

type VkPhysicalDeviceVariablePointersFeatures

type VkPhysicalDeviceVariablePointersFeatures struct {
	VariablePointersStorageBuffer bool
	VariablePointers              bool
}

type VkPhysicalDeviceVertexAttributeDivisorFeatures

type VkPhysicalDeviceVertexAttributeDivisorFeatures struct {
	VertexAttributeInstanceRateDivisor     bool
	VertexAttributeInstanceRateZeroDivisor bool
}

type VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT

type VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT struct {
	VertexAttributeInstanceRateDivisor     bool
	VertexAttributeInstanceRateZeroDivisor bool
}

type VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR

type VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR struct {
	VertexAttributeInstanceRateDivisor     bool
	VertexAttributeInstanceRateZeroDivisor bool
}

type VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT

type VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT struct {
	VertexAttributeRobustness bool
}

type VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT

type VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT struct {
	VertexInputDynamicState bool
}

type VkPhysicalDeviceVideoEncodeAV1FeaturesKHR

type VkPhysicalDeviceVideoEncodeAV1FeaturesKHR struct {
	VideoEncodeAV1 bool
}

type VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR

type VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR struct {
	VideoEncodeQuantizationMap bool
}

type VkPhysicalDeviceVideoMaintenance1FeaturesKHR

type VkPhysicalDeviceVideoMaintenance1FeaturesKHR struct {
	VideoMaintenance1 bool
}

type VkPhysicalDeviceVideoMaintenance2FeaturesKHR

type VkPhysicalDeviceVideoMaintenance2FeaturesKHR struct {
	VideoMaintenance2 bool
}

type VkPhysicalDeviceVulkan11Features

type VkPhysicalDeviceVulkan11Features struct {
	StorageBuffer16BitAccess           bool
	UniformAndStorageBuffer16BitAccess bool
	StoragePushConstant16              bool
	StorageInputOutput16               bool
	Multiview                          bool
	MultiviewGeometryShader            bool
	MultiviewTessellationShader        bool
	VariablePointersStorageBuffer      bool
	VariablePointers                   bool
	ProtectedMemory                    bool
	SamplerYCbCrConversion             bool
	ShaderDrawParameters               bool
}

type VkPhysicalDeviceVulkan12Features

type VkPhysicalDeviceVulkan12Features struct {
	SamplerMirrorClampToEdge                           bool
	DrawIndirectCount                                  bool
	StorageBuffer8BitAccess                            bool
	UniformAndStorageBuffer8BitAccess                  bool
	StoragePushConstant8                               bool
	ShaderBufferInt64Atomics                           bool
	ShaderSharedInt64Atomics                           bool
	ShaderFloat16                                      bool
	ShaderInt8                                         bool
	DescriptorIndexing                                 bool
	ShaderInputAttachmentArrayDynamicIndexing          bool
	ShaderUniformTexelBufferArrayDynamicIndexing       bool
	ShaderStorageTexelBufferArrayDynamicIndexing       bool
	ShaderUniformBufferArrayNonUniformIndexing         bool
	ShaderSampledImageArrayNonUniformIndexing          bool
	ShaderStorageBufferArrayNonUniformIndexing         bool
	ShaderStorageImageArrayNonUniformIndexing          bool
	ShaderInputAttachmentArrayNonUniformIndexing       bool
	ShaderUniformTexelBufferArrayNonUniformIndexing    bool
	ShaderStorageTexelBufferArrayNonUniformIndexing    bool
	DescriptorBindingUniformBufferUpdateAfterBind      bool
	DescriptorBindingSampledImageUpdateAfterBind       bool
	DescriptorBindingStorageImageUpdateAfterBind       bool
	DescriptorBindingStorageBufferUpdateAfterBind      bool
	DescriptorBindingUniformTexelBufferUpdateAfterBind bool
	DescriptorBindingStorageTexelBufferUpdateAfterBind bool
	DescriptorBindingUpdateUnusedWhilePending          bool
	DescriptorBindingPartiallyBound                    bool
	DescriptorBindingVariableDescriptorCount           bool
	RuntimeDescriptorArray                             bool
	SamplerFilterMinmax                                bool
	ScalarBlockLayout                                  bool
	ImagelessFramebuffer                               bool
	UniformBufferStandardLayout                        bool
	ShaderSubgroupExtendedTypes                        bool
	SeparateDepthStencilLayouts                        bool
	HostQueryReset                                     bool
	TimelineSemaphore                                  bool
	BufferDeviceAddress                                bool
	BufferDeviceAddressCaptureReplay                   bool
	BufferDeviceAddressMultiDevice                     bool
	VulkanMemoryModel                                  bool
	VulkanMemoryModelDeviceScope                       bool
	VulkanMemoryModelAvailabilityVisibilityChains      bool
	ShaderOutputViewportIndex                          bool
	ShaderOutputLayer                                  bool
	SubgroupBroadcastDynamicId                         bool
}

type VkPhysicalDeviceVulkan13Features

type VkPhysicalDeviceVulkan13Features struct {
	RobustImageAccess                                  bool
	InlineUniformBlock                                 bool
	DescriptorBindingInlineUniformBlockUpdateAfterBind bool
	PipelineCreationCacheControl                       bool
	PrivateData                                        bool
	ShaderDemoteToHelperInvocation                     bool
	ShaderTerminateInvocation                          bool
	SubgroupSizeControl                                bool
	ComputeFullSubgroups                               bool
	Synchronization2                                   bool
	TextureCompressionASTC_HDR                         bool
	ShaderZeroInitializeWorkgroupMemory                bool
	DynamicRendering                                   bool
	ShaderIntegerDotProduct                            bool
	Maintenance4                                       bool
}

type VkPhysicalDeviceVulkan14Features

type VkPhysicalDeviceVulkan14Features struct {
	GlobalPriorityQuery                    bool
	ShaderSubgroupRotate                   bool
	ShaderSubgroupRotateClustered          bool
	ShaderFloatControls2                   bool
	ShaderExpectAssume                     bool
	RectangularLines                       bool
	BresenhamLines                         bool
	SmoothLines                            bool
	StippledRectangularLines               bool
	StippledBresenhamLines                 bool
	StippledSmoothLines                    bool
	VertexAttributeInstanceRateDivisor     bool
	VertexAttributeInstanceRateZeroDivisor bool
	IndexTypeUint8                         bool
	DynamicRenderingLocalRead              bool
	Maintenance5                           bool
	Maintenance6                           bool
	PipelineProtectedAccess                bool
	PipelineRobustness                     bool
	HostImageCopy                          bool
	PushDescriptor                         bool
}

type VkPhysicalDeviceVulkanMemoryModelFeatures

type VkPhysicalDeviceVulkanMemoryModelFeatures struct {
	VulkanMemoryModel                             bool
	VulkanMemoryModelDeviceScope                  bool
	VulkanMemoryModelAvailabilityVisibilityChains bool
}

type VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR

type VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR struct {
	WorkgroupMemoryExplicitLayout                  bool
	WorkgroupMemoryExplicitLayoutScalarBlockLayout bool
	WorkgroupMemoryExplicitLayout8BitAccess        bool
	WorkgroupMemoryExplicitLayout16BitAccess       bool
}

type VkPhysicalDeviceYCbCrDegammaFeaturesQCOM

type VkPhysicalDeviceYCbCrDegammaFeaturesQCOM struct {
	YCbCrDegamma bool
}

type VkPhysicalDeviceYCbCrImageArraysFeaturesEXT

type VkPhysicalDeviceYCbCrImageArraysFeaturesEXT struct {
	YCbCrImageArrays bool
}

type VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures

type VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures struct {
	ShaderZeroInitializeWorkgroupMemory bool
}

Directories

Path Synopsis
internal
vk

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL