use enums instead of bitfields
This commit is contained in:
@@ -1164,6 +1164,42 @@ class RegistryParser : XmlParser
|
||||
}
|
||||
|
||||
strBuf.Clear();
|
||||
if (type_name.StartsWith("Std")) for (let field in fields)
|
||||
if (field.flags.HasFlag(.Bitfield))
|
||||
{
|
||||
int flagPost = 1;
|
||||
strBuf.Append("enum ", type_name, " : uint32\n{\n");
|
||||
for (let field in fields)
|
||||
{
|
||||
if (field.flags.HasFlag(.CommentOnly))
|
||||
{
|
||||
if (field.comment.IsEmpty) continue;
|
||||
strBuf.Append('\t');
|
||||
WriteComment(field.comment, strBuf);
|
||||
strBuf.Append('\n');
|
||||
continue;
|
||||
}
|
||||
|
||||
Runtime.Assert(field.flags.HasFlag(.Bitfield));
|
||||
if (field.name != "reserved")
|
||||
{
|
||||
strBuf.Append('\t');
|
||||
strBuf.Append(field.name);
|
||||
strBuf.Append(" = 0x");
|
||||
flagPost.ToString(strBuf, "X8", null);
|
||||
strBuf.Append(",\n");
|
||||
}
|
||||
flagPost <<= field.bitfieldWidth;
|
||||
}
|
||||
strBuf.Append('}');
|
||||
feature.content = new:alloc .(strBuf);
|
||||
vkTypes.Add(feature.name, feature);
|
||||
|
||||
fields.Clear();
|
||||
fieldBufferIdx = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (_)
|
||||
{
|
||||
case .Type_Struct: strBuf.Append("[CRepr]");
|
||||
@@ -1176,6 +1212,7 @@ class RegistryParser : XmlParser
|
||||
{
|
||||
if (field.flags.HasFlag(.CommentOnly))
|
||||
{
|
||||
if (field.comment.IsEmpty) continue;
|
||||
strBuf.Append('\t');
|
||||
WriteComment(field.comment, strBuf);
|
||||
strBuf.Append('\n');
|
||||
|
||||
+335
-919
File diff suppressed because it is too large
Load Diff
@@ -4481,7 +4481,6 @@ struct VkPhysicalDevice : int
|
||||
|
||||
[CRepr] struct VkPhysicalDeviceLimits : this()
|
||||
{
|
||||
|
||||
public uint32 maxImageDimension1D = 0; // max 1D image dimension
|
||||
public uint32 maxImageDimension2D = 0; // max 2D image dimension
|
||||
public uint32 maxImageDimension3D = 0; // max 3D image dimension
|
||||
@@ -4491,12 +4490,10 @@ struct VkPhysicalDevice : int
|
||||
public uint32 maxUniformBufferRange = 0; // max uniform buffer range (bytes)
|
||||
public uint32 maxStorageBufferRange = 0; // max storage buffer range (bytes)
|
||||
public uint32 maxPushConstantsSize = 0; // max size of the push constants pool (bytes)
|
||||
|
||||
public uint32 maxMemoryAllocationCount = 0; // max number of device memory allocations supported
|
||||
public uint32 maxSamplerAllocationCount = 0; // max number of samplers that can be allocated on a device
|
||||
public VkDeviceSize bufferImageGranularity = default; // Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
|
||||
public VkDeviceSize sparseAddressSpaceSize = default; // Total address space available for sparse allocations (bytes)
|
||||
|
||||
public uint32 maxBoundDescriptorSets = 0; // max number of descriptors sets that can be bound to a pipeline
|
||||
public uint32 maxPerStageDescriptorSamplers = 0; // max number of samplers allowed per-stage in a descriptor set
|
||||
public uint32 maxPerStageDescriptorUniformBuffers = 0; // max number of uniform buffers allowed per-stage in a descriptor set
|
||||
@@ -4513,34 +4510,28 @@ struct VkPhysicalDevice : int
|
||||
public uint32 maxDescriptorSetSampledImages = 0; // max number of sampled images allowed in all stages in a descriptor set
|
||||
public uint32 maxDescriptorSetStorageImages = 0; // max number of storage images allowed in all stages in a descriptor set
|
||||
public uint32 maxDescriptorSetInputAttachments = 0; // max number of input attachments allowed in all stages in a descriptor set
|
||||
|
||||
public uint32 maxVertexInputAttributes = 0; // max number of vertex input attribute slots
|
||||
public uint32 maxVertexInputBindings = 0; // max number of vertex input binding slots
|
||||
public uint32 maxVertexInputAttributeOffset = 0; // max vertex input attribute offset added to vertex buffer offset
|
||||
public uint32 maxVertexInputBindingStride = 0; // max vertex input binding stride
|
||||
public uint32 maxVertexOutputComponents = 0; // max number of output components written by vertex shader
|
||||
|
||||
public uint32 maxTessellationGenerationLevel = 0; // max level supported by tessellation primitive generator
|
||||
public uint32 maxTessellationPatchSize = 0; // max patch size (vertices)
|
||||
public uint32 maxTessellationControlPerVertexInputComponents = 0; // max number of input components per-vertex in TCS
|
||||
public uint32 maxTessellationControlPerVertexOutputComponents = 0; // max number of output components per-vertex in TCS
|
||||
public uint32 maxTessellationControlPerPatchOutputComponents = 0; // max number of output components per-patch in TCS
|
||||
public uint32 maxTessellationControlTotalOutputComponents = 0; // max total number of per-vertex and per-patch output components in TCS
|
||||
|
||||
public uint32 maxTessellationEvaluationInputComponents = 0; // max number of input components per vertex in TES
|
||||
public uint32 maxTessellationEvaluationOutputComponents = 0; // max number of output components per vertex in TES
|
||||
|
||||
public uint32 maxGeometryShaderInvocations = 0; // max invocation count supported in geometry shader
|
||||
public uint32 maxGeometryInputComponents = 0; // max number of input components read in geometry stage
|
||||
public uint32 maxGeometryOutputComponents = 0; // max number of output components written in geometry stage
|
||||
public uint32 maxGeometryOutputVertices = 0; // max number of vertices that can be emitted in geometry stage
|
||||
public uint32 maxGeometryTotalOutputComponents = 0; // max total number of components (all vertices) written in geometry stage
|
||||
|
||||
public uint32 maxFragmentInputComponents = 0; // max number of input components read in fragment stage
|
||||
public uint32 maxFragmentOutputAttachments = 0; // max number of output attachments written in fragment stage
|
||||
public uint32 maxFragmentDualSrcAttachments = 0; // max number of output attachments written when using dual source blending
|
||||
public uint32 maxFragmentCombinedOutputResources = 0; // max total number of storage buffers, storage images and output buffers
|
||||
|
||||
public uint32 maxComputeSharedMemorySize = 0; // max total storage size of work group local storage (bytes)
|
||||
public uint32[3] maxComputeWorkGroupCount = .(); // max num of compute work groups that may be dispatched by a single command (x,y,z)
|
||||
public uint32 maxComputeWorkGroupInvocations = 0; // max total compute invocations in a single local work group
|
||||
@@ -6231,7 +6222,6 @@ typealias VkQueryControlFlags = VkQueryControlFlagBits;
|
||||
|
||||
[CRepr] struct VkPipelineCacheHeaderVersionOne : this()
|
||||
{
|
||||
|
||||
public uint32 headerSize = 0;
|
||||
public VkPipelineCacheHeaderVersion headerVersion = default;
|
||||
public uint32 vendorID = 0;
|
||||
@@ -18522,18 +18512,15 @@ static { public const let VK_EXT_HDR_METADATA_EXTENSION_NAME = "VK_EXT_hdr_metad
|
||||
|
||||
[CRepr] struct VkHdrMetadataEXT : this()
|
||||
{
|
||||
|
||||
public const VkStructureType SType = .VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
|
||||
public VkStructureType sType = SType;
|
||||
public void* pNext = null;
|
||||
|
||||
public VkXYColorEXT displayPrimaryRed = default; // Display primary's Red
|
||||
public VkXYColorEXT displayPrimaryGreen = default; // Display primary's Green
|
||||
public VkXYColorEXT displayPrimaryBlue = default; // Display primary's Blue
|
||||
public VkXYColorEXT whitePoint = default; // Display primary's Blue
|
||||
public float maxLuminance = 0; // Display maximum luminance
|
||||
public float minLuminance = 0; // Display minimum luminance
|
||||
|
||||
public float maxContentLightLevel = 0; // Content maximum luminance
|
||||
public float maxFrameAverageLightLevel = 0;
|
||||
|
||||
@@ -20028,7 +20015,6 @@ static { public const let VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME = "VK_KHR
|
||||
|
||||
[CRepr] struct VkAccelerationStructureInstanceKHR : this()
|
||||
{
|
||||
|
||||
public VkTransformMatrixKHR transform = default;
|
||||
[Bitfield(.Public, .Bits(24), "instanceCustomIndex")]
|
||||
[Bitfield(.Public, .Bits(8), "mask")]
|
||||
@@ -25954,7 +25940,6 @@ static { public const let VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME = "VK_NV_
|
||||
|
||||
[CRepr] struct VkAccelerationStructureMatrixMotionInstanceNV : this()
|
||||
{
|
||||
|
||||
public VkTransformMatrixKHR transformT0 = default;
|
||||
public VkTransformMatrixKHR transformT1 = default;
|
||||
[Bitfield(.Public, .Bits(24), "instanceCustomIndex")]
|
||||
@@ -25979,7 +25964,6 @@ static { public const let VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME = "VK_NV_
|
||||
|
||||
[CRepr] struct VkAccelerationStructureSRTMotionInstanceNV : this()
|
||||
{
|
||||
|
||||
public VkSRTDataNV transformT0 = default;
|
||||
public VkSRTDataNV transformT1 = default;
|
||||
[Bitfield(.Public, .Bits(24), "instanceCustomIndex")]
|
||||
@@ -26523,7 +26507,6 @@ static { public const let VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fa
|
||||
|
||||
[CRepr] struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT : this()
|
||||
{
|
||||
|
||||
public uint32 headerSize = 0;
|
||||
public VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion = default;
|
||||
public uint32 vendorID = 0;
|
||||
@@ -30149,7 +30132,6 @@ struct VkOpticalFlowSessionNV : uint64
|
||||
|
||||
[CRepr] struct VkOpticalFlowSessionCreatePrivateDataInfoNV : this()
|
||||
{
|
||||
|
||||
public const VkStructureType SType = .VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV;
|
||||
public VkStructureType sType = SType;
|
||||
public void* pNext = null;
|
||||
@@ -31052,7 +31034,6 @@ static { public const let VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_KH
|
||||
public VkStructureType sType = SType;
|
||||
public void* pNext = null;
|
||||
public uint32 presentModeCount = 0;
|
||||
|
||||
public VkPresentModeKHR* pPresentModes = null;
|
||||
public Span<VkPresentModeKHR> presentModes
|
||||
{
|
||||
@@ -31060,7 +31041,6 @@ static { public const let VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_KH
|
||||
set mut { pPresentModes = value.Ptr; presentModeCount = (.)value.Length; }
|
||||
}
|
||||
|
||||
|
||||
public this(void* pNext, Span<VkPresentModeKHR> presentModes) : this()
|
||||
{
|
||||
this.pNext = pNext;
|
||||
@@ -34373,7 +34353,6 @@ static { public const let VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME =
|
||||
|
||||
[CRepr] struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV : this()
|
||||
{
|
||||
|
||||
[Bitfield(.Public, .Bits(24), "geometryIndex")]
|
||||
[Bitfield(.Public, .Bits(5), "reserved")]
|
||||
[Bitfield(.Public, .Bits(3), "geometryFlags")]
|
||||
@@ -34456,7 +34435,6 @@ typealias VkClusterAccelerationStructureAddressResolutionFlagsNV = VkClusterAcce
|
||||
|
||||
[CRepr] struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV : this()
|
||||
{
|
||||
|
||||
public uint32 clusterID = 0;
|
||||
public VkClusterAccelerationStructureClusterFlagsNV clusterFlags = default;
|
||||
[Bitfield(.Public, .Bits(9), "triangleCount")]
|
||||
@@ -34500,7 +34478,6 @@ typealias VkClusterAccelerationStructureAddressResolutionFlagsNV = VkClusterAcce
|
||||
|
||||
[CRepr] struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV : this()
|
||||
{
|
||||
|
||||
public uint32 clusterID = 0;
|
||||
public VkClusterAccelerationStructureClusterFlagsNV clusterFlags = default;
|
||||
[Bitfield(.Public, .Bits(9), "triangleCount")]
|
||||
@@ -36262,7 +36239,6 @@ static { public const uint32 VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM =
|
||||
|
||||
[CRepr] struct VkPipelineCacheHeaderVersionDataGraphQCOM : this()
|
||||
{
|
||||
|
||||
public uint32 headerSize = 0;
|
||||
public VkPipelineCacheHeaderVersion headerVersion = default;
|
||||
public VkDataGraphModelCacheTypeQCOM cacheType = default;
|
||||
|
||||
Reference in New Issue
Block a user