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;
65enum HgiDeviceCapabilitiesBits : HgiBits
67 HgiDeviceCapabilitiesBitsPresentation = 1 << 0,
68 HgiDeviceCapabilitiesBitsBindlessBuffers = 1 << 1,
69 HgiDeviceCapabilitiesBitsConcurrentDispatch = 1 << 2,
70 HgiDeviceCapabilitiesBitsUnifiedMemory = 1 << 3,
71 HgiDeviceCapabilitiesBitsBuiltinBarycentrics = 1 << 4,
72 HgiDeviceCapabilitiesBitsShaderDrawParameters = 1 << 5,
73 HgiDeviceCapabilitiesBitsMultiDrawIndirect = 1 << 6,
74 HgiDeviceCapabilitiesBitsBindlessTextures = 1 << 7,
75 HgiDeviceCapabilitiesBitsShaderDoublePrecision = 1 << 8,
76 HgiDeviceCapabilitiesBitsDepthRangeMinusOnetoOne = 1 << 9,
77 HgiDeviceCapabilitiesBitsCppShaderPadding = 1 << 10,
78 HgiDeviceCapabilitiesBitsConservativeRaster = 1 << 11,
79 HgiDeviceCapabilitiesBitsStencilReadback = 1 << 12,
80 HgiDeviceCapabilitiesBitsCustomDepthRange = 1 << 13,
81 HgiDeviceCapabilitiesBitsMetalTessellation = 1 << 14,
82 HgiDeviceCapabilitiesBitsBasePrimitiveOffset = 1 << 15,
83 HgiDeviceCapabilitiesBitsPrimitiveIdEmulation = 1 << 16,
84 HgiDeviceCapabilitiesBitsIndirectCommandBuffers = 1 << 17,
85 HgiDeviceCapabilitiesBitsRoundPoints = 1 << 18,
86 HgiDeviceCapabilitiesBitsSingleSlotResourceArrays = 1 << 19,
89using HgiDeviceCapabilities = HgiBits;
112 HgiTextureType1D = 0,
115 HgiTextureTypeCubemap,
116 HgiTextureType1DArray,
117 HgiTextureType2DArray,
146enum HgiTextureUsageBits : HgiBits
148 HgiTextureUsageBitsColorTarget = 1 << 0,
149 HgiTextureUsageBitsDepthTarget = 1 << 1,
150 HgiTextureUsageBitsStencilTarget = 1 << 2,
151 HgiTextureUsageBitsShaderRead = 1 << 3,
152 HgiTextureUsageBitsShaderWrite = 1 << 4,
154 HgiTextureUsageCustomBitsBegin = 1 << 5,
157using HgiTextureUsage = HgiBits;
163enum HgiSamplerAddressMode
165 HgiSamplerAddressModeClampToEdge = 0,
166 HgiSamplerAddressModeMirrorClampToEdge,
167 HgiSamplerAddressModeRepeat,
168 HgiSamplerAddressModeMirrorRepeat,
169 HgiSamplerAddressModeClampToBorderColor,
171 HgiSamplerAddressModeCount
187 HgiSamplerFilterNearest = 0,
188 HgiSamplerFilterLinear = 1,
190 HgiSamplerFilterCount
208 HgiMipFilterNotMipmapped = 0,
209 HgiMipFilterNearest = 1,
210 HgiMipFilterLinear = 2,
227 HgiBorderColorTransparentBlack = 0,
228 HgiBorderColorOpaqueBlack = 1,
229 HgiBorderColorOpaqueWhite = 2,
244 HgiSampleCount16 = 16,
262enum HgiAttachmentLoadOp
264 HgiAttachmentLoadOpDontCare = 0,
265 HgiAttachmentLoadOpClear,
266 HgiAttachmentLoadOpLoad,
268 HgiAttachmentLoadOpCount
282enum HgiAttachmentStoreOp
284 HgiAttachmentStoreOpDontCare = 0,
285 HgiAttachmentStoreOpStore,
287 HgiAttachmentStoreOpCount
311enum HgiBufferUsageBits : HgiBits
313 HgiBufferUsageUniform = 1 << 0,
314 HgiBufferUsageIndex32 = 1 << 1,
315 HgiBufferUsageVertex = 1 << 2,
316 HgiBufferUsageStorage = 1 << 3,
317 HgiBufferUsageIndirect = 1 << 4,
318 HgiBufferUsageUpload = 1 << 5,
320 HgiBufferUsageCustomBitsBegin = 1 << 6,
322using HgiBufferUsage = HgiBits;
352enum HgiShaderStageBits : HgiBits
354 HgiShaderStageVertex = 1 << 0,
355 HgiShaderStageFragment = 1 << 1,
356 HgiShaderStageCompute = 1 << 2,
357 HgiShaderStageTessellationControl = 1 << 3,
358 HgiShaderStageTessellationEval = 1 << 4,
359 HgiShaderStageGeometry = 1 << 5,
360 HgiShaderStagePostTessellationControl = 1 << 6,
361 HgiShaderStagePostTessellationVertex = 1 << 7,
362 HgiShaderStageCustomBitsBegin = 1 << 8,
364using HgiShaderStage = HgiBits;
392enum HgiBindResourceType
394 HgiBindResourceTypeSampler = 0,
395 HgiBindResourceTypeSampledImage,
396 HgiBindResourceTypeCombinedSamplerImage,
397 HgiBindResourceTypeStorageImage,
398 HgiBindResourceTypeUniformBuffer,
399 HgiBindResourceTypeStorageBuffer,
400 HgiBindResourceTypeTessFactors,
402 HgiBindResourceTypeCount
420 HgiPolygonModeFill = 0,
447 HgiCullModeFrontAndBack,
465 HgiWindingClockwise = 0,
466 HgiWindingCounterClockwise,
480 HgiBlendOpReverseSubtract,
493 HgiBlendFactorZero = 0,
495 HgiBlendFactorSrcColor,
496 HgiBlendFactorOneMinusSrcColor,
497 HgiBlendFactorDstColor,
498 HgiBlendFactorOneMinusDstColor,
499 HgiBlendFactorSrcAlpha,
500 HgiBlendFactorOneMinusSrcAlpha,
501 HgiBlendFactorDstAlpha,
502 HgiBlendFactorOneMinusDstAlpha,
503 HgiBlendFactorConstantColor,
504 HgiBlendFactorOneMinusConstantColor,
505 HgiBlendFactorConstantAlpha,
506 HgiBlendFactorOneMinusConstantAlpha,
507 HgiBlendFactorSrcAlphaSaturate,
508 HgiBlendFactorSrc1Color,
509 HgiBlendFactorOneMinusSrc1Color,
510 HgiBlendFactorSrc1Alpha,
511 HgiBlendFactorOneMinusSrc1Alpha,
521enum HgiColorMaskBits : HgiBits
523 HgiColorMaskRed = 1 << 0,
524 HgiColorMaskGreen = 1 << 1,
525 HgiColorMaskBlue = 1 << 2,
526 HgiColorMaskAlpha = 1 << 3,
528using HgiColorMask = HgiBits;
534enum HgiCompareFunction
536 HgiCompareFunctionNever = 0,
537 HgiCompareFunctionLess,
538 HgiCompareFunctionEqual,
539 HgiCompareFunctionLEqual,
540 HgiCompareFunctionGreater,
541 HgiCompareFunctionNotEqual,
542 HgiCompareFunctionGEqual,
543 HgiCompareFunctionAlways,
545 HgiCompareFunctionCount
554 HgiStencilOpKeep = 0,
557 HgiStencilOpIncrementClamp,
558 HgiStencilOpDecrementClamp,
560 HgiStencilOpIncrementWrap,
561 HgiStencilOpDecrementWrap,
570enum HgiComponentSwizzle
572 HgiComponentSwizzleZero = 0,
573 HgiComponentSwizzleOne,
574 HgiComponentSwizzleR,
575 HgiComponentSwizzleG,
576 HgiComponentSwizzleB,
577 HgiComponentSwizzleA,
579 HgiComponentSwizzleCount
605 HgiPrimitiveTypePointList = 0,
606 HgiPrimitiveTypeLineList,
607 HgiPrimitiveTypeLineStrip,
608 HgiPrimitiveTypeTriangleList,
609 HgiPrimitiveTypePatchList,
610 HgiPrimitiveTypeLineListWithAdjacency,
612 HgiPrimitiveTypeCount
634enum HgiVertexBufferStepFunction
636 HgiVertexBufferStepFunctionConstant = 0,
637 HgiVertexBufferStepFunctionPerVertex,
638 HgiVertexBufferStepFunctionPerInstance,
639 HgiVertexBufferStepFunctionPerPatch,
640 HgiVertexBufferStepFunctionPerPatchControlPoint,
641 HgiVertexBufferStepFunctionPerDrawCommand,
643 HgiVertexBufferStepFunctionCount
657enum HgiSubmitWaitType
659 HgiSubmitWaitTypeNoWait = 0,
660 HgiSubmitWaitTypeWaitUntilCompleted,
674enum HgiMemoryBarrierBits
676 HgiMemoryBarrierNone = 0,
677 HgiMemoryBarrierAll = 1 << 0
679using HgiMemoryBarrier = HgiBits;
710 HgiBindingTypeValue = 0,
711 HgiBindingTypeUniformValue,
713 HgiBindingTypeUniformArray,
714 HgiBindingTypePointer,
736enum HgiInterpolationType
738 HgiInterpolationDefault = 0,
739 HgiInterpolationFlat,
740 HgiInterpolationNoPerspective,
764 HgiSamplingDefault = 0,
784 HgiStorageDefault = 0,
803enum HgiShaderTextureType
805 HgiShaderTextureTypeTexture = 0,
806 HgiShaderTextureTypeShadowTexture,
807 HgiShaderTextureTypeArrayTexture,
808 HgiShaderTextureTypeCubemapTexture
822enum HgiComputeDispatch
824 HgiComputeDispatchSerial = 0,
825 HgiComputeDispatchConcurrent
828PXR_NAMESPACE_CLOSE_SCOPE