diff options
Diffstat (limited to 'src/libs/dxvk-native-1.9.2a/src/dxso/dxso_enums.h')
-rw-r--r-- | src/libs/dxvk-native-1.9.2a/src/dxso/dxso_enums.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/src/dxso/dxso_enums.h b/src/libs/dxvk-native-1.9.2a/src/dxso/dxso_enums.h new file mode 100644 index 00000000..84f2e5b7 --- /dev/null +++ b/src/libs/dxvk-native-1.9.2a/src/dxso/dxso_enums.h @@ -0,0 +1,164 @@ +#pragma once + +#include "dxso_include.h" + +#include <cstdint> + +namespace dxvk { + + /** + * \brief Instruction code listing + */ + enum class DxsoOpcode : uint32_t { + Nop = 0, + Mov , + Add , + Sub , + Mad , + Mul , + Rcp , + Rsq , + Dp3 , + Dp4 , + Min , + Max , + Slt , + Sge , + Exp , + Log , + Lit , + Dst , + Lrp , + Frc , + M4x4 , + M4x3 , + M3x4 , + M3x3 , + M3x2 , + Call , + CallNz , + Loop , + Ret , + EndLoop , + Label , + Dcl , + Pow , + Crs , + Sgn , + Abs , + Nrm , + SinCos , + Rep , + EndRep , + If , + Ifc , + Else , + EndIf , + Break , + BreakC , + Mova , + DefB , + DefI , + + TexCoord = 64, + TexKill , + Tex , + TexBem , + TexBemL , + TexReg2Ar , + TexReg2Gb , + TexM3x2Pad , + TexM3x2Tex , + TexM3x3Pad , + TexM3x3Tex , + Reserved0 , + TexM3x3Spec , + TexM3x3VSpec , + ExpP , + LogP , + Cnd , + Def , + TexReg2Rgb , + TexDp3Tex , + TexM3x2Depth , + TexDp3 , + TexM3x3 , + TexDepth , + Cmp , + Bem , + Dp2Add , + DsX , + DsY , + TexLdd , + SetP , + TexLdl , + BreakP , + + Phase = 0xfffd, + Comment = 0xfffe, + End = 0xffff + }; + + std::ostream& operator << (std::ostream& os, DxsoOpcode opcode); + + enum class DxsoRegisterType : uint32_t { + Temp = 0, // Temporary Register File + Input = 1, // Input Register File + Const = 2, // Constant Register File + Addr = 3, // Address Register (VS) + Texture = 3, // Texture Register File (PS) + RasterizerOut = 4, // Rasterizer Register File + AttributeOut = 5, // Attribute Output Register File + TexcoordOut = 6, // Texture Coordinate Output Register File + Output = 6, // Output register file for VS3.0+ + ConstInt = 7, // Constant Integer Vector Register File + ColorOut = 8, // Color Output Register File + DepthOut = 9, // Depth Output Register File + Sampler = 10, // Sampler State Register File + Const2 = 11, // Constant Register File 2048 - 4095 + Const3 = 12, // Constant Register File 4096 - 6143 + Const4 = 13, // Constant Register File 6144 - 8191 + ConstBool = 14, // Constant Boolean register file + Loop = 15, // Loop counter register file + TempFloat16 = 16, // 16-bit float temp register file + MiscType = 17, // Miscellaneous (single) registers. + Label = 18, // Label + Predicate = 19, // Predicate register + PixelTexcoord = 20 + }; + + enum class DxsoUsage : uint32_t { + Position = 0, + BlendWeight, // 1 + BlendIndices, // 2 + Normal, // 3 + PointSize, // 4 + Texcoord, // 5 + Tangent, // 6 + Binormal, // 7 + TessFactor, // 8 + PositionT, // 9 + Color, // 10 + Fog, // 11 + Depth, // 12 + Sample, // 13 + }; + + enum class DxsoTextureType : uint32_t { + Texture2D = 2, + TextureCube = 3, + Texture3D = 4 + }; + + enum DxsoReasterizerOutIndices : uint32_t { + RasterOutPosition = 0, + RasterOutFog = 1, + RasterOutPointSize = 2 + }; + + enum DxsoMiscTypeIndices : uint32_t { + MiscTypePosition, + MiscTypeFace, + }; + +}
\ No newline at end of file |