7#ifndef PXR_IMAGING_HGI_ENUMS_H
8#define PXR_IMAGING_HGI_ENUMS_H
11#include "pxr/imaging/hgi/api.h"
14PXR_NAMESPACE_OPEN_SCOPE
16using HgiBits = uint32_t;
68enum HgiDeviceCapabilitiesBits : HgiBits
70 HgiDeviceCapabilitiesBitsPresentation = 1 << 0,
71 HgiDeviceCapabilitiesBitsBindlessBuffers = 1 << 1,
72 HgiDeviceCapabilitiesBitsConcurrentDispatch = 1 << 2,
73 HgiDeviceCapabilitiesBitsUnifiedMemory = 1 << 3,
74 HgiDeviceCapabilitiesBitsBuiltinBarycentrics = 1 << 4,
75 HgiDeviceCapabilitiesBitsShaderDrawParameters = 1 << 5,
76 HgiDeviceCapabilitiesBitsMultiDrawIndirect = 1 << 6,
77 HgiDeviceCapabilitiesBitsBindlessTextures = 1 << 7,
78 HgiDeviceCapabilitiesBitsShaderDoublePrecision = 1 << 8,
79 HgiDeviceCapabilitiesBitsDepthRangeMinusOnetoOne = 1 << 9,
80 HgiDeviceCapabilitiesBitsCppShaderPadding = 1 << 10,
81 HgiDeviceCapabilitiesBitsConservativeRaster = 1 << 11,
82 HgiDeviceCapabilitiesBitsStencilReadback = 1 << 12,
83 HgiDeviceCapabilitiesBitsCustomDepthRange = 1 << 13,
84 HgiDeviceCapabilitiesBitsMetalTessellation = 1 << 14,
85 HgiDeviceCapabilitiesBitsBasePrimitiveOffset = 1 << 15,
86 HgiDeviceCapabilitiesBitsPrimitiveIdEmulation = 1 << 16,
87 HgiDeviceCapabilitiesBitsIndirectCommandBuffers = 1 << 17,
88 HgiDeviceCapabilitiesBitsRoundPoints = 1 << 18,
89 HgiDeviceCapabilitiesBitsSingleSlotResourceArrays = 1 << 19,
90 HgiDeviceCapabilitiesForceEarlyFragmentTest = 1 << 20,
93using HgiDeviceCapabilities = HgiBits;
116 HgiTextureType1D = 0,
119 HgiTextureTypeCubemap,
120 HgiTextureType1DArray,
121 HgiTextureType2DArray,
150enum HgiTextureUsageBits : HgiBits
152 HgiTextureUsageBitsColorTarget = 1 << 0,
153 HgiTextureUsageBitsDepthTarget = 1 << 1,
154 HgiTextureUsageBitsStencilTarget = 1 << 2,
155 HgiTextureUsageBitsShaderRead = 1 << 3,
156 HgiTextureUsageBitsShaderWrite = 1 << 4,
158 HgiTextureUsageCustomBitsBegin = 1 << 5,
161using HgiTextureUsage = HgiBits;
167enum HgiSamplerAddressMode
169 HgiSamplerAddressModeClampToEdge = 0,
170 HgiSamplerAddressModeMirrorClampToEdge,
171 HgiSamplerAddressModeRepeat,
172 HgiSamplerAddressModeMirrorRepeat,
173 HgiSamplerAddressModeClampToBorderColor,
175 HgiSamplerAddressModeCount
191 HgiSamplerFilterNearest = 0,
192 HgiSamplerFilterLinear = 1,
194 HgiSamplerFilterCount
212 HgiMipFilterNotMipmapped = 0,
213 HgiMipFilterNearest = 1,
214 HgiMipFilterLinear = 2,
231 HgiBorderColorTransparentBlack = 0,
232 HgiBorderColorOpaqueBlack = 1,
233 HgiBorderColorOpaqueWhite = 2,
248 HgiSampleCount16 = 16,
266enum HgiAttachmentLoadOp
268 HgiAttachmentLoadOpDontCare = 0,
269 HgiAttachmentLoadOpClear,
270 HgiAttachmentLoadOpLoad,
272 HgiAttachmentLoadOpCount
286enum HgiAttachmentStoreOp
288 HgiAttachmentStoreOpDontCare = 0,
289 HgiAttachmentStoreOpStore,
291 HgiAttachmentStoreOpCount
315enum HgiBufferUsageBits : HgiBits
317 HgiBufferUsageUniform = 1 << 0,
318 HgiBufferUsageIndex32 = 1 << 1,
319 HgiBufferUsageVertex = 1 << 2,
320 HgiBufferUsageStorage = 1 << 3,
321 HgiBufferUsageIndirect = 1 << 4,
322 HgiBufferUsageUpload = 1 << 5,
324 HgiBufferUsageCustomBitsBegin = 1 << 6,
326using HgiBufferUsage = HgiBits;
356enum HgiShaderStageBits : HgiBits
358 HgiShaderStageVertex = 1 << 0,
359 HgiShaderStageFragment = 1 << 1,
360 HgiShaderStageCompute = 1 << 2,
361 HgiShaderStageTessellationControl = 1 << 3,
362 HgiShaderStageTessellationEval = 1 << 4,
363 HgiShaderStageGeometry = 1 << 5,
364 HgiShaderStagePostTessellationControl = 1 << 6,
365 HgiShaderStagePostTessellationVertex = 1 << 7,
366 HgiShaderStageCustomBitsBegin = 1 << 8,
368using HgiShaderStage = HgiBits;
396enum HgiBindResourceType
398 HgiBindResourceTypeSampler = 0,
399 HgiBindResourceTypeSampledImage,
400 HgiBindResourceTypeCombinedSamplerImage,
401 HgiBindResourceTypeStorageImage,
402 HgiBindResourceTypeUniformBuffer,
403 HgiBindResourceTypeStorageBuffer,
404 HgiBindResourceTypeTessFactors,
406 HgiBindResourceTypeCount
424 HgiPolygonModeFill = 0,
451 HgiCullModeFrontAndBack,
469 HgiWindingClockwise = 0,
470 HgiWindingCounterClockwise,
484 HgiBlendOpReverseSubtract,
497 HgiBlendFactorZero = 0,
499 HgiBlendFactorSrcColor,
500 HgiBlendFactorOneMinusSrcColor,
501 HgiBlendFactorDstColor,
502 HgiBlendFactorOneMinusDstColor,
503 HgiBlendFactorSrcAlpha,
504 HgiBlendFactorOneMinusSrcAlpha,
505 HgiBlendFactorDstAlpha,
506 HgiBlendFactorOneMinusDstAlpha,
507 HgiBlendFactorConstantColor,
508 HgiBlendFactorOneMinusConstantColor,
509 HgiBlendFactorConstantAlpha,
510 HgiBlendFactorOneMinusConstantAlpha,
511 HgiBlendFactorSrcAlphaSaturate,
512 HgiBlendFactorSrc1Color,
513 HgiBlendFactorOneMinusSrc1Color,
514 HgiBlendFactorSrc1Alpha,
515 HgiBlendFactorOneMinusSrc1Alpha,
525enum HgiColorMaskBits : HgiBits
527 HgiColorMaskRed = 1 << 0,
528 HgiColorMaskGreen = 1 << 1,
529 HgiColorMaskBlue = 1 << 2,
530 HgiColorMaskAlpha = 1 << 3,
532using HgiColorMask = HgiBits;
538enum HgiCompareFunction
540 HgiCompareFunctionNever = 0,
541 HgiCompareFunctionLess,
542 HgiCompareFunctionEqual,
543 HgiCompareFunctionLEqual,
544 HgiCompareFunctionGreater,
545 HgiCompareFunctionNotEqual,
546 HgiCompareFunctionGEqual,
547 HgiCompareFunctionAlways,
549 HgiCompareFunctionCount
558 HgiStencilOpKeep = 0,
561 HgiStencilOpIncrementClamp,
562 HgiStencilOpDecrementClamp,
564 HgiStencilOpIncrementWrap,
565 HgiStencilOpDecrementWrap,
574enum HgiComponentSwizzle
576 HgiComponentSwizzleZero = 0,
577 HgiComponentSwizzleOne,
578 HgiComponentSwizzleR,
579 HgiComponentSwizzleG,
580 HgiComponentSwizzleB,
581 HgiComponentSwizzleA,
583 HgiComponentSwizzleCount
609 HgiPrimitiveTypePointList = 0,
610 HgiPrimitiveTypeLineList,
611 HgiPrimitiveTypeLineStrip,
612 HgiPrimitiveTypeTriangleList,
613 HgiPrimitiveTypePatchList,
614 HgiPrimitiveTypeLineListWithAdjacency,
616 HgiPrimitiveTypeCount
638enum HgiVertexBufferStepFunction
640 HgiVertexBufferStepFunctionConstant = 0,
641 HgiVertexBufferStepFunctionPerVertex,
642 HgiVertexBufferStepFunctionPerInstance,
643 HgiVertexBufferStepFunctionPerPatch,
644 HgiVertexBufferStepFunctionPerPatchControlPoint,
645 HgiVertexBufferStepFunctionPerDrawCommand,
647 HgiVertexBufferStepFunctionCount
661enum HgiSubmitWaitType
663 HgiSubmitWaitTypeNoWait = 0,
664 HgiSubmitWaitTypeWaitUntilCompleted,
678enum HgiMemoryBarrierBits
680 HgiMemoryBarrierNone = 0,
681 HgiMemoryBarrierAll = 1 << 0
683using HgiMemoryBarrier = HgiBits;
714 HgiBindingTypeValue = 0,
715 HgiBindingTypeUniformValue,
717 HgiBindingTypeUniformArray,
718 HgiBindingTypePointer,
740enum HgiInterpolationType
742 HgiInterpolationDefault = 0,
743 HgiInterpolationFlat,
744 HgiInterpolationNoPerspective,
768 HgiSamplingDefault = 0,
788 HgiStorageDefault = 0,
807enum HgiShaderTextureType
809 HgiShaderTextureTypeTexture = 0,
810 HgiShaderTextureTypeShadowTexture,
811 HgiShaderTextureTypeArrayTexture,
812 HgiShaderTextureTypeCubemapTexture
826enum HgiComputeDispatch
828 HgiComputeDispatchSerial = 0,
829 HgiComputeDispatchConcurrent
832PXR_NAMESPACE_CLOSE_SCOPE