1fe8aea9eSmrg#ifndef GEN9_RENDER_H 2fe8aea9eSmrg#define GEN9_RENDER_H 3fe8aea9eSmrg 4fe8aea9eSmrg#define INTEL_MASK(high, low) (((1 << ((high) - (low) + 1)) - 1) << (low)) 5fe8aea9eSmrg 6fe8aea9eSmrg#define GEN9_3D(pipeline,op,sub) \ 7fe8aea9eSmrg ((3 << 29) | ((pipeline) << 27) | ((op) << 24) | ((sub) << 16)) 8fe8aea9eSmrg 9fe8aea9eSmrg#define GEN9_STATE_BASE_ADDRESS GEN9_3D(0, 1, 1) 10fe8aea9eSmrg# define BASE_ADDRESS_MODIFY (1 << 0) 11fe8aea9eSmrg 12fe8aea9eSmrg#define GEN9_STATE_SIP GEN9_3D(0, 1, 2) 13fe8aea9eSmrg 14fe8aea9eSmrg#define GEN9_3DSTATE_VF_STATISTICS GEN9_3D(1, 0, 0xb) 15fe8aea9eSmrg#define GEN9_PIPELINE_SELECT GEN9_3D(1, 1, 4) 16fe8aea9eSmrg# define PIPELINE_SELECT_3D 0 17fe8aea9eSmrg# define PIPELINE_SELECT_MEDIA 1 18fe8aea9eSmrg#define PIPELINE_SELECTION_MASK (3 << 8) 19fe8aea9eSmrg 20fe8aea9eSmrg#define GEN9_MEDIA_STATE_POINTERS GEN9_3D(2, 0, 0) 21fe8aea9eSmrg#define GEN9_MEDIA_OBJECT GEN9_3D(2, 1, 0) 22fe8aea9eSmrg 23fe8aea9eSmrg#define GEN9_3DSTATE_CLEAR_PARAMS GEN9_3D(3, 0, 0x04) 24fe8aea9eSmrg#define GEN9_3DSTATE_DEPTH_BUFFER GEN9_3D(3, 0, 0x05) 25fe8aea9eSmrg# define DEPTH_BUFFER_TYPE_SHIFT 29 26fe8aea9eSmrg# define DEPTH_BUFFER_FORMAT_SHIFT 18 27fe8aea9eSmrg 28fe8aea9eSmrg#define GEN9_3DSTATE_STENCIL_BUFFER GEN9_3D(3, 0, 0x06) 29fe8aea9eSmrg#define GEN9_3DSTATE_HIER_DEPTH_BUFFER GEN9_3D(3, 0, 0x07) 30fe8aea9eSmrg#define GEN9_3DSTATE_VERTEX_BUFFERS GEN9_3D(3, 0, 0x08) 31fe8aea9eSmrg# define VB_INDEX_SHIFT 26 32fe8aea9eSmrg# define VB_MODIFY_ENABLE (1 << 14) 33fe8aea9eSmrg#define GEN9_3DSTATE_VERTEX_ELEMENTS GEN9_3D(3, 0, 0x09) 34fe8aea9eSmrg# define VE_INDEX_SHIFT 26 35fe8aea9eSmrg# define VE_VALID (1 << 25) 36fe8aea9eSmrg# define VE_FORMAT_SHIFT 16 37fe8aea9eSmrg# define VE_OFFSET_SHIFT 0 38fe8aea9eSmrg# define VE_COMPONENT_0_SHIFT 28 39fe8aea9eSmrg# define VE_COMPONENT_1_SHIFT 24 40fe8aea9eSmrg# define VE_COMPONENT_2_SHIFT 20 41fe8aea9eSmrg# define VE_COMPONENT_3_SHIFT 16 42fe8aea9eSmrg#define GEN9_3DSTATE_INDEX_BUFFER GEN9_3D(3, 0, 0x0a) 43fe8aea9eSmrg#define GEN9_3DSTATE_VF GEN9_3D(3, 0, 0x0c) 44fe8aea9eSmrg 45fe8aea9eSmrg#define GEN9_3DSTATE_MULTISAMPLE GEN9_3D(3, 0, 0x0d) 46fe8aea9eSmrg/* DW1 */ 47fe8aea9eSmrg# define MULTISAMPLE_PIXEL_LOCATION_CENTER (0 << 4) 48fe8aea9eSmrg# define MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT (1 << 4) 49fe8aea9eSmrg# define MULTISAMPLE_NUMSAMPLES_1 (0 << 1) 50fe8aea9eSmrg# define MULTISAMPLE_NUMSAMPLES_4 (2 << 1) 51fe8aea9eSmrg# define MULTISAMPLE_NUMSAMPLES_8 (3 << 1) 52fe8aea9eSmrg 53fe8aea9eSmrg#define GEN9_3DSTATE_CC_STATE_POINTERS GEN9_3D(3, 0, 0x0e) 54fe8aea9eSmrg#define GEN9_3DSTATE_SCISSOR_STATE_POINTERS GEN9_3D(3, 0, 0x0f) 55fe8aea9eSmrg 56fe8aea9eSmrg#define GEN9_3DSTATE_VS GEN9_3D(3, 0, 0x10) 57fe8aea9eSmrg#define GEN9_3DSTATE_GS GEN9_3D(3, 0, 0x11) 58fe8aea9eSmrg#define GEN9_3DSTATE_CLIP GEN9_3D(3, 0, 0x12) 59fe8aea9eSmrg#define GEN9_3DSTATE_SF GEN9_3D(3, 0, 0x13) 60fe8aea9eSmrg# define SF_TRI_PROVOKE_SHIFT 29 61fe8aea9eSmrg# define SF_LINE_PROVOKE_SHIFT 27 62fe8aea9eSmrg# define SF_FAN_PROVOKE_SHIFT 25 63fe8aea9eSmrg 64fe8aea9eSmrg#define GEN9_3DSTATE_WM GEN9_3D(3, 0, 0x14) 65fe8aea9eSmrg/* DW1 */ 66fe8aea9eSmrg# define WM_STATISTICS_ENABLE (1 << 31) 67fe8aea9eSmrg# define WM_DEPTH_CLEAR (1 << 30) 68fe8aea9eSmrg# define WM_DEPTH_RESOLVE (1 << 28) 69fe8aea9eSmrg# define WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27) 70fe8aea9eSmrg# define WM_KILL_ENABLE (1 << 25) 71fe8aea9eSmrg# define WM_POSITION_ZW_PIXEL (0 << 17) 72fe8aea9eSmrg# define WM_POSITION_ZW_CENTROID (2 << 17) 73fe8aea9eSmrg# define WM_POSITION_ZW_SAMPLE (3 << 17) 74fe8aea9eSmrg# define WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 16) 75fe8aea9eSmrg# define WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 15) 76fe8aea9eSmrg# define WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 14) 77fe8aea9eSmrg# define WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 13) 78fe8aea9eSmrg# define WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 12) 79fe8aea9eSmrg# define WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11) 80fe8aea9eSmrg# define WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8) 81fe8aea9eSmrg# define WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8) 82fe8aea9eSmrg# define WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8) 83fe8aea9eSmrg# define WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8) 84fe8aea9eSmrg# define WM_LINE_AA_WIDTH_0_5 (0 << 6) 85fe8aea9eSmrg# define WM_LINE_AA_WIDTH_1_0 (1 << 6) 86fe8aea9eSmrg# define WM_LINE_AA_WIDTH_2_0 (2 << 6) 87fe8aea9eSmrg# define WM_LINE_AA_WIDTH_4_0 (3 << 6) 88fe8aea9eSmrg# define WM_POLYGON_STIPPLE_ENABLE (1 << 4) 89fe8aea9eSmrg# define WM_LINE_STIPPLE_ENABLE (1 << 3) 90fe8aea9eSmrg# define WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2) 91fe8aea9eSmrg# define WM_MSRAST_OFF_PIXEL (0 << 0) 92fe8aea9eSmrg# define WM_MSRAST_OFF_PATTERN (1 << 0) 93fe8aea9eSmrg# define WM_MSRAST_ON_PIXEL (2 << 0) 94fe8aea9eSmrg# define WM_MSRAST_ON_PATTERN (3 << 0) 95fe8aea9eSmrg 96fe8aea9eSmrg#define GEN9_3DSTATE_CONSTANT_VS GEN9_3D(3, 0, 0x15) 97fe8aea9eSmrg#define GEN9_3DSTATE_CONSTANT_GS GEN9_3D(3, 0, 0x16) 98fe8aea9eSmrg#define GEN9_3DSTATE_CONSTANT_PS GEN9_3D(3, 0, 0x17) 99fe8aea9eSmrg 100fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLE_MASK GEN9_3D(3, 0, 0x18) 101fe8aea9eSmrg 102fe8aea9eSmrg#define GEN9_3DSTATE_CONSTANT_HS GEN9_3D(3, 0, 0x19) 103fe8aea9eSmrg#define GEN9_3DSTATE_CONSTANT_DS GEN9_3D(3, 0, 0x1a) 104fe8aea9eSmrg 105fe8aea9eSmrg#define GEN9_3DSTATE_HS GEN9_3D(3, 0, 0x1b) 106fe8aea9eSmrg#define GEN9_3DSTATE_TE GEN9_3D(3, 0, 0x1c) 107fe8aea9eSmrg#define GEN9_3DSTATE_DS GEN9_3D(3, 0, 0x1d) 108fe8aea9eSmrg#define GEN9_3DSTATE_STREAMOUT GEN9_3D(3, 0, 0x1e) 109fe8aea9eSmrg 110fe8aea9eSmrg#define GEN9_3DSTATE_SBE GEN9_3D(3, 0, 0x1f) 111fe8aea9eSmrg/* DW1 */ 112fe8aea9eSmrg# define SBE_FORCE_VERTEX_URB_READ_LENGTH (1<<29) 113fe8aea9eSmrg# define SBE_FORCE_VERTEX_URB_READ_OFFSET (1<<28) 114fe8aea9eSmrg# define SBE_NUM_OUTPUTS_SHIFT 22 115fe8aea9eSmrg# define SBE_SWIZZLE_ENABLE (1 << 21) 116fe8aea9eSmrg# define SBE_POINT_SPRITE_LOWERLEFT (1 << 20) 117fe8aea9eSmrg# define SBE_URB_ENTRY_READ_LENGTH_SHIFT 11 118fe8aea9eSmrg# define SBE_URB_ENTRY_READ_OFFSET_SHIFT 5 119fe8aea9eSmrg#define SBE_ACTIVE_COMPONENT_NONE 0 120fe8aea9eSmrg#define SBE_ACTIVE_COMPONENT_XY 1 121fe8aea9eSmrg#define SBE_ACTIVE_COMPONENT_XYZ 2 122fe8aea9eSmrg#define SBE_ACTIVE_COMPONENT_XYZW 3 123fe8aea9eSmrg 124fe8aea9eSmrg 125fe8aea9eSmrg#define GEN9_3DSTATE_PS GEN9_3D(3, 0, 0x20) 126fe8aea9eSmrg/* DW1:DW2 kernel pointer */ 127fe8aea9eSmrg/* DW3 */ 128fe8aea9eSmrg# define PS_SPF_MODE (1 << 31) 129fe8aea9eSmrg# define PS_VECTOR_MASK_ENABLE (1 << 30) 130fe8aea9eSmrg# define PS_SAMPLER_COUNT_SHIFT 27 131fe8aea9eSmrg# define PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 132fe8aea9eSmrg# define PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16) 133fe8aea9eSmrg# define PS_FLOATING_POINT_MODE_ALT (1 << 16) 134fe8aea9eSmrg/* DW4:DW5: scratch space */ 135fe8aea9eSmrg/* DW6 */ 136fe8aea9eSmrg# define PS_MAX_THREADS_SHIFT 23 137fe8aea9eSmrg# define PS_MAX_THREADS (63 << PS_MAX_THREADS_SHIFT) 138fe8aea9eSmrg# define PS_PUSH_CONSTANT_ENABLE (1 << 11) 139fe8aea9eSmrg# define PS_RENDER_TARGET_CLEAR (1 << 8) 140fe8aea9eSmrg# define PS_RENDER_TARGET_RESOLVE (1 << 6) 141fe8aea9eSmrg# define PS_POSOFFSET_NONE (0 << 3) 142fe8aea9eSmrg# define PS_POSOFFSET_CENTROID (2 << 3) 143fe8aea9eSmrg# define PS_POSOFFSET_SAMPLE (3 << 3) 144fe8aea9eSmrg# define PS_32_DISPATCH_ENABLE (1 << 2) 145fe8aea9eSmrg# define PS_16_DISPATCH_ENABLE (1 << 1) 146fe8aea9eSmrg# define PS_8_DISPATCH_ENABLE (1 << 0) 147fe8aea9eSmrg/* DW7 */ 148fe8aea9eSmrg# define PS_DISPATCH_START_GRF_SHIFT_0 16 149fe8aea9eSmrg# define PS_DISPATCH_START_GRF_SHIFT_1 8 150fe8aea9eSmrg# define PS_DISPATCH_START_GRF_SHIFT_2 0 151fe8aea9eSmrg/* DW8:D9: kernel 1 pointer */ 152fe8aea9eSmrg/* DW10:D11: kernel 2 pointer */ 153fe8aea9eSmrg 154fe8aea9eSmrg#define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP GEN9_3D(3, 0, 0x21) 155fe8aea9eSmrg#define GEN9_3DSTATE_VIEWPORT_STATE_POINTERS_CC GEN9_3D(3, 0, 0x23) 156fe8aea9eSmrg 157fe8aea9eSmrg#define GEN9_3DSTATE_BLEND_STATE_POINTERS GEN9_3D(3, 0, 0x24) 158fe8aea9eSmrg 159fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_POINTERS_VS GEN9_3D(3, 0, 0x26) 160fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_POINTERS_HS GEN9_3D(3, 0, 0x27) 161fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_POINTERS_DS GEN9_3D(3, 0, 0x28) 162fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_POINTERS_GS GEN9_3D(3, 0, 0x29) 163fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_POINTERS_PS GEN9_3D(3, 0, 0x2a) 164fe8aea9eSmrg 165fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_VS GEN9_3D(3, 0, 0x2b) 166fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_HS GEN9_3D(3, 0, 0x2c) 167fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_DS GEN9_3D(3, 0, 0x2d) 168fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_GS GEN9_3D(3, 0, 0x2e) 169fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_STATE_POINTERS_PS GEN9_3D(3, 0, 0x2f) 170fe8aea9eSmrg 171fe8aea9eSmrg#define GEN9_3DSTATE_URB_VS GEN9_3D(3, 0, 0x30) 172fe8aea9eSmrg#define GEN9_3DSTATE_URB_HS GEN9_3D(3, 0, 0x31) 173fe8aea9eSmrg#define GEN9_3DSTATE_URB_DS GEN9_3D(3, 0, 0x32) 174fe8aea9eSmrg#define GEN9_3DSTATE_URB_GS GEN9_3D(3, 0, 0x33) 175fe8aea9eSmrg/* DW1 */ 176fe8aea9eSmrg# define URB_ENTRY_NUMBER_SHIFT 0 177fe8aea9eSmrg# define URB_ENTRY_SIZE_SHIFT 16 178fe8aea9eSmrg# define URB_STARTING_ADDRESS_SHIFT 25 179fe8aea9eSmrg 180fe8aea9eSmrg#define GEN9_3DSTATE_GATHER_CONSTANT_VS GEN9_3D(3, 0, 0x34) 181fe8aea9eSmrg#define GEN9_3DSTATE_GATHER_CONSTANT_GS GEN9_3D(3, 0, 0x35) 182fe8aea9eSmrg#define GEN9_3DSTATE_GATHER_CONSTANT_HS GEN9_3D(3, 0, 0x36) 183fe8aea9eSmrg#define GEN9_3DSTATE_GATHER_CONSTANT_DS GEN9_3D(3, 0, 0x37) 184fe8aea9eSmrg#define GEN9_3DSTATE_GATHER_CONSTANT_PS GEN9_3D(3, 0, 0x38) 185fe8aea9eSmrg 186fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANTF_VS GEN9_3D(3, 0, 0x39) 187fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANTF_PS GEN9_3D(3, 0, 0x3a) 188fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANTI_VS GEN9_3D(3, 0, 0x3b) 189fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANTI_PS GEN9_3D(3, 0, 0x3c) 190fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANTB_VS GEN9_3D(3, 0, 0x3d) 191fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANTB_PS GEN9_3D(3, 0, 0x3e) 192fe8aea9eSmrg#define GEN9_3DSTATE_DX9_LOCAL_VALID_VS GEN9_3D(3, 0, 0x3f) 193fe8aea9eSmrg#define GEN9_3DSTATE_DX9_LOCAL_VALID_PS GEN9_3D(3, 0, 0x40) 194fe8aea9eSmrg#define GEN9_3DSTATE_DX9_GENERATE_ACTIVE_VS GEN9_3D(3, 0, 0x41) 195fe8aea9eSmrg#define GEN9_3DSTATE_DX9_GENERATE_ACTIVE_PS GEN9_3D(3, 0, 0x42) 196fe8aea9eSmrg 197fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_EDIT_VS GEN9_3D(3, 0, 0x43) 198fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_EDIT_GS GEN9_3D(3, 0, 0x44) 199fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_EDIT_HS GEN9_3D(3, 0, 0x45) 200fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_EDIT_DS GEN9_3D(3, 0, 0x46) 201fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_EDIT_PS GEN9_3D(3, 0, 0x47) 202fe8aea9eSmrg 203fe8aea9eSmrg#define GEN9_3DSTATE_VF_INSTANCING GEN9_3D(3, 0, 0x49) 204fe8aea9eSmrg#define GEN9_3DSTATE_VF_SGVS GEN9_3D(3, 0, 0x4a) 205fe8aea9eSmrg# define SGVS_ENABLE_INSTANCE_ID (1 << 31) 206fe8aea9eSmrg# define SGVS_INSTANCE_ID_COMPONENT_SHIFT 29 207fe8aea9eSmrg# define SGVS_INSTANCE_ID_ELEMENT_OFFSET_SHIFT 16 208fe8aea9eSmrg# define SGVS_ENABLE_VERTEX_ID (1 << 15) 209fe8aea9eSmrg# define SGVS_VERTEX_ID_COMPONENT_SHIFT 13 210fe8aea9eSmrg# define SGVS_VERTEX_ID_ELEMENT_OFFSET_SHIFT 0 211fe8aea9eSmrg#define GEN9_3DSTATE_VF_TOPOLOGY GEN9_3D(3, 0, 0x4b) 212fe8aea9eSmrg# define POINTLIST 0x01 213fe8aea9eSmrg# define LINELIST 0x02 214fe8aea9eSmrg# define LINESTRIP 0x03 215fe8aea9eSmrg# define TRILIST 0x04 216fe8aea9eSmrg# define TRISTRIP 0x05 217fe8aea9eSmrg# define TRIFAN 0x06 218fe8aea9eSmrg# define QUADLIST 0x07 219fe8aea9eSmrg# define QUADSTRIP 0x08 220fe8aea9eSmrg# define LINELIST_ADJ 0x09 221fe8aea9eSmrg# define LINESTRIP_ADJ 0x0A 222fe8aea9eSmrg# define TRILIST_ADJ 0x0B 223fe8aea9eSmrg# define TRISTRIP_ADJ 0x0C 224fe8aea9eSmrg# define TRISTRIP_REVERSE 0x0D 225fe8aea9eSmrg# define POLYGON 0x0E 226fe8aea9eSmrg# define RECTLIST 0x0F 227fe8aea9eSmrg# define LINELOOP 0x10 228fe8aea9eSmrg# define POINTLIST_BF 0x11 229fe8aea9eSmrg# define LINESTRIP_CONT 0x12 230fe8aea9eSmrg# define LINESTRIP_BF 0x13 231fe8aea9eSmrg# define LINESTRIP_CONT_BF 0x14 232fe8aea9eSmrg# define TRIFAN_NOSTIPPLE 0x15 233fe8aea9eSmrg 234fe8aea9eSmrg#define GEN9_3DSTATE_WM_CHROMAKEY GEN9_3D(3, 0, 0x4c) 235fe8aea9eSmrg 236fe8aea9eSmrg#define GEN9_3DSTATE_PS_BLEND GEN9_3D(3, 0, 0x4d) 237fe8aea9eSmrg# define PS_BLEND_ALPHA_TO_COVERAGE_ENABLE (1 << 31) 238fe8aea9eSmrg# define PS_BLEND_HAS_WRITEABLE_RT (1 << 30) 239fe8aea9eSmrg# define PS_BLEND_COLOR_BLEND_ENABLE (1 << 29) 240fe8aea9eSmrg# define PS_BLEND_SRC_ALPHA_SHIFT 24 241fe8aea9eSmrg# define PS_BLEND_DST_ALPHA_SHIFT 19 242fe8aea9eSmrg# define PS_BLEND_SRC_SHIFT 14 243fe8aea9eSmrg# define PS_BLEND_DST_SHIFT 9 244fe8aea9eSmrg# define PS_BLEND_ALPHA_TEST_ENABLE (1 << 8) 245fe8aea9eSmrg# define PS_BLEND_INDEPENDENT_ALPHA_BLEND_ENABLE (1 << 7) 246fe8aea9eSmrg 247fe8aea9eSmrg#define GEN9_3DSTATE_WM_DEPTH_STENCIL GEN9_3D(3, 0, 0x4e) 248fe8aea9eSmrg/* DW1 */ 249fe8aea9eSmrg# define WM_DS_STENCIL_TEST_MASK_MASK INTEL_MASK(31, 24) 250fe8aea9eSmrg# define WM_DS_STENCIL_TEST_MASK_SHIFT 24 251fe8aea9eSmrg# define WM_DS_STENCIL_WRITE_MASK_MASK INTEL_MASK(23, 16) 252fe8aea9eSmrg# define WM_DS_STENCIL_WRITE_MASK_SHIFT 16 253fe8aea9eSmrg# define WM_DS_BF_STENCIL_TEST_MASK_MASK INTEL_MASK(15, 8) 254fe8aea9eSmrg# define WM_DS_BF_STENCIL_TEST_MASK_SHIFT 8 255fe8aea9eSmrg# define WM_DS_BF_STENCIL_WRITE_MASK_MASK INTEL_MASK(7, 0) 256fe8aea9eSmrg# define WM_DS_DEPTH_FUNC_SHIFT 5 257fe8aea9eSmrg# define WM_DS_DOUBLE_SIDED_STENCIL_ENABLE (1 << 4) 258fe8aea9eSmrg# define WM_DS_STENCIL_TEST_ENABLE (1 << 3) 259fe8aea9eSmrg# define WM_DS_STENCIL_BUFFER_WRITE_ENABLE (1 << 2) 260fe8aea9eSmrg# define WM_DS_DEPTH_TEST_ENABLE (1 << 1) 261fe8aea9eSmrg# define WM_DS_DEPTH_BUFFER_WRITE_ENABLE (1 << 0) 262fe8aea9eSmrg/* DW2 */ 263fe8aea9eSmrg# define WM_DS_STENCIL_TEST_MASK_MASK INTEL_MASK(31, 24) 264fe8aea9eSmrg# define WM_DS_STENCIL_TEST_MASK_SHIFT 24 265fe8aea9eSmrg# define WM_DS_STENCIL_WRITE_MASK_MASK INTEL_MASK(23, 16) 266fe8aea9eSmrg# define WM_DS_STENCIL_WRITE_MASK_SHIFT 16 267fe8aea9eSmrg# define WM_DS_BF_STENCIL_TEST_MASK_MASK INTEL_MASK(15, 8) 268fe8aea9eSmrg# define WM_DS_BF_STENCIL_TEST_MASK_SHIFT 8 269fe8aea9eSmrg# define WM_DS_BF_STENCIL_WRITE_MASK_MASK INTEL_MASK(7, 0) 270fe8aea9eSmrg# define WM_DS_BF_STENCIL_WRITE_MASK_SHIFT 0 271fe8aea9eSmrg 272fe8aea9eSmrg#define GEN9_3DSTATE_PS_EXTRA GEN9_3D(3, 0, 0x4f) 273fe8aea9eSmrg# define PSX_PIXEL_SHADER_VALID (1 << 31) 274fe8aea9eSmrg# define PSX_PIXEL_SHADER_NO_RT_WRITE (1 << 30) 275fe8aea9eSmrg# define PSX_OMASK_TO_RENDER_TARGET (1 << 29) 276fe8aea9eSmrg# define PSX_KILL_ENABLE (1 << 28) 277fe8aea9eSmrg# define PSX_PSCDEPTH_OFF (0 << 26) 278fe8aea9eSmrg# define PSX_PSCDEPTH_ON (1 << 26) 279fe8aea9eSmrg# define PSX_PSCDEPTH_ON_GE (2 << 26) 280fe8aea9eSmrg# define PSX_PSCDEPTH_ON_LE (3 << 26) 281fe8aea9eSmrg# define PSX_FORCE_COMPUTED_DEPTH (1 << 25) 282fe8aea9eSmrg# define PSX_USES_SOURCE_DEPTH (1 << 24) 283fe8aea9eSmrg# define PSX_USES_SOURCE_W (1 << 23) 284fe8aea9eSmrg# define PSX_ATTRIBUTE_ENABLE (1 << 8) 285fe8aea9eSmrg# define PSX_SHADER_DISABLES_ALPHA_TO_COVERAGE (1 << 7) 286fe8aea9eSmrg# define PSX_SHADER_IS_PER_SAMPLE (1 << 6) 287fe8aea9eSmrg# define PSX_SHADER_HAS_UAV (1 << 2) 288fe8aea9eSmrg# define PSX_SHADER_USES_INPUT_COVERAGE_MASK (1 << 1) 289fe8aea9eSmrg 290fe8aea9eSmrg#define GEN9_3DSTATE_RASTER GEN9_3D(3, 0, 0x50) 291fe8aea9eSmrg/* DW1 */ 292fe8aea9eSmrg# define RASTER_FRONT_WINDING_CCW (1 << 21) 293fe8aea9eSmrg# define RASTER_CULL_BOTH (0 << 16) 294fe8aea9eSmrg# define RASTER_CULL_NONE (1 << 16) 295fe8aea9eSmrg# define RASTER_CULL_FRONT (2 << 16) 296fe8aea9eSmrg# define RASTER_CULL_BACK (3 << 16) 297fe8aea9eSmrg# define RASTER_SMOOTH_POINT_ENABLE (1 << 13) 298fe8aea9eSmrg# define RASTER_LINE_AA_ENABLE (1 << 2) 299fe8aea9eSmrg# define RASTER_VIEWPORT_Z_CLIP_TEST_ENABLE (1 << 0) 300fe8aea9eSmrg 301fe8aea9eSmrg#define GEN9_3DSTATE_SBE_SWIZ GEN9_3D(3, 0, 0x51) 302fe8aea9eSmrg#define GEN9_3DSTATE_WM_HZ_OP GEN9_3D(3, 0, 0x52) 303fe8aea9eSmrg 304fe8aea9eSmrg#define GEN9_3DSTATE_COMPONENT_PACKING GEN6_3D(3, 0, 0x55) 305fe8aea9eSmrg 306fe8aea9eSmrg 307fe8aea9eSmrg 308fe8aea9eSmrg#define GEN9_3DSTATE_DRAWING_RECTANGLE GEN9_3D(3, 1, 0x00) 309fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD GEN9_3D(3, 1, 0x02) 310fe8aea9eSmrg#define GEN9_3DSTATE_CHROMA_KEY GEN9_3D(3, 1, 0x04) 311fe8aea9eSmrg 312fe8aea9eSmrg#define GEN9_3DSTATE_POLY_STIPPLE_OFFSET GEN9_3D(3, 1, 0x06) 313fe8aea9eSmrg#define GEN9_3DSTATE_POLY_STIPPLE_PATTERN GEN9_3D(3, 1, 0x07) 314fe8aea9eSmrg#define GEN9_3DSTATE_LINE_STIPPLE GEN9_3D(3, 1, 0x08) 315fe8aea9eSmrg#define GEN9_3DSTATE_AA_LINE_PARAMS GEN9_3D(3, 1, 0x0a) 316fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLER_PALETTE_LOAD1 GEN9_3D(3, 1, 0x0c) 317fe8aea9eSmrg#define GEN9_3DSTATE_MONOFILTER_SIZE GEN9_3D(3, 1, 0x11) 318fe8aea9eSmrg#define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_VS GEN9_3D(3, 1, 0x12) 319fe8aea9eSmrg#define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_HS GEN9_3D(3, 1, 0x13) 320fe8aea9eSmrg#define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_DS GEN9_3D(3, 1, 0x14) 321fe8aea9eSmrg#define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_GS GEN9_3D(3, 1, 0x15) 322fe8aea9eSmrg#define GEN9_3DSTATE_PUSH_CONSTANT_ALLOC_PS GEN9_3D(3, 1, 0x16) 323fe8aea9eSmrg/* DW1 */ 324fe8aea9eSmrg# define PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16 325fe8aea9eSmrg# define PUSH_CONSTANT_BUFFER_SIZE_SHIFT 0 326fe8aea9eSmrg 327fe8aea9eSmrg#define GEN9_3DSTATE_SO_DECL_LIST GEN9_3D(3, 1, 0x17) 328fe8aea9eSmrg#define GEN9_3DSTATE_SO_BUFFER GEN9_3D(3, 1, 0x18) 329fe8aea9eSmrg#define GEN9_3DSTATE_BINDING_TABLE_POOL_ALLOC GEN9_3D(3, 1, 0x19) 330fe8aea9eSmrg#define GEN9_3DSTATE_GATHER_BUFFER_POOL_ALLOC GEN9_3D(3, 1, 0x1a) 331fe8aea9eSmrg#define GEN9_3DSTATE_DX9_CONSTANT_BUFFER_POOL_ALLOC GEN9_3D(3, 1, 0x1b) 332fe8aea9eSmrg#define GEN9_3DSTATE_SAMPLE_PATTERN GEN9_3D(3, 1, 0x1c) 333fe8aea9eSmrg 334fe8aea9eSmrg 335fe8aea9eSmrg/* for GEN9_PIPE_CONTROL */ 336fe8aea9eSmrg#define GEN9_PIPE_CONTROL GEN9_3D(3, 2, 0) 337fe8aea9eSmrg#define PIPE_CONTROL_CS_STALL (1 << 20) 338fe8aea9eSmrg#define PIPE_CONTROL_NOWRITE (0 << 14) 339fe8aea9eSmrg#define PIPE_CONTROL_WRITE_QWORD (1 << 14) 340fe8aea9eSmrg#define PIPE_CONTROL_WRITE_DEPTH (2 << 14) 341fe8aea9eSmrg#define PIPE_CONTROL_WRITE_TIME (3 << 14) 342fe8aea9eSmrg#define PIPE_CONTROL_DEPTH_STALL (1 << 13) 343fe8aea9eSmrg#define PIPE_CONTROL_WC_FLUSH (1 << 12) 344fe8aea9eSmrg#define PIPE_CONTROL_IS_FLUSH (1 << 11) 345fe8aea9eSmrg#define PIPE_CONTROL_TC_FLUSH (1 << 10) 346fe8aea9eSmrg#define PIPE_CONTROL_NOTIFY_ENABLE (1 << 8) 347fe8aea9eSmrg#define PIPE_CONTROL_FLUSH (1 << 7) 348fe8aea9eSmrg#define PIPE_CONTROL_GLOBAL_GTT (1 << 2) 349fe8aea9eSmrg#define PIPE_CONTROL_LOCAL_PGTT (0 << 2) 350fe8aea9eSmrg#define PIPE_CONTROL_STALL_AT_SCOREBOARD (1 << 1) 351fe8aea9eSmrg#define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1 << 0) 352fe8aea9eSmrg 353fe8aea9eSmrg 354fe8aea9eSmrg#define GEN9_3DPRIMITIVE GEN9_3D(3, 3, 0) 355fe8aea9eSmrg 356fe8aea9eSmrg/* 3DPRIMITIVE bits */ 357fe8aea9eSmrg#define VERTEX_SEQUENTIAL (0 << 15) 358fe8aea9eSmrg#define VERTEX_RANDOM (1 << 15) 359fe8aea9eSmrg 360fe8aea9eSmrg#define ANISORATIO_2 0 361fe8aea9eSmrg#define ANISORATIO_4 1 362fe8aea9eSmrg#define ANISORATIO_6 2 363fe8aea9eSmrg#define ANISORATIO_8 3 364fe8aea9eSmrg#define ANISORATIO_10 4 365fe8aea9eSmrg#define ANISORATIO_12 5 366fe8aea9eSmrg#define ANISORATIO_14 6 367fe8aea9eSmrg#define ANISORATIO_16 7 368fe8aea9eSmrg 369fe8aea9eSmrg#define BLENDFACTOR_ONE 0x1 370fe8aea9eSmrg#define BLENDFACTOR_SRC_COLOR 0x2 371fe8aea9eSmrg#define BLENDFACTOR_SRC_ALPHA 0x3 372fe8aea9eSmrg#define BLENDFACTOR_DST_ALPHA 0x4 373fe8aea9eSmrg#define BLENDFACTOR_DST_COLOR 0x5 374fe8aea9eSmrg#define BLENDFACTOR_SRC_ALPHA_SATURATE 0x6 375fe8aea9eSmrg#define BLENDFACTOR_CONST_COLOR 0x7 376fe8aea9eSmrg#define BLENDFACTOR_CONST_ALPHA 0x8 377fe8aea9eSmrg#define BLENDFACTOR_SRC1_COLOR 0x9 378fe8aea9eSmrg#define BLENDFACTOR_SRC1_ALPHA 0x0A 379fe8aea9eSmrg#define BLENDFACTOR_ZERO 0x11 380fe8aea9eSmrg#define BLENDFACTOR_INV_SRC_COLOR 0x12 381fe8aea9eSmrg#define BLENDFACTOR_INV_SRC_ALPHA 0x13 382fe8aea9eSmrg#define BLENDFACTOR_INV_DST_ALPHA 0x14 383fe8aea9eSmrg#define BLENDFACTOR_INV_DST_COLOR 0x15 384fe8aea9eSmrg#define BLENDFACTOR_INV_CONST_COLOR 0x17 385fe8aea9eSmrg#define BLENDFACTOR_INV_CONST_ALPHA 0x18 386fe8aea9eSmrg#define BLENDFACTOR_INV_SRC1_COLOR 0x19 387fe8aea9eSmrg#define BLENDFACTOR_INV_SRC1_ALPHA 0x1A 388fe8aea9eSmrg 389fe8aea9eSmrg#define BLENDFUNCTION_ADD 0 390fe8aea9eSmrg#define BLENDFUNCTION_SUBTRACT 1 391fe8aea9eSmrg#define BLENDFUNCTION_REVERSE_SUBTRACT 2 392fe8aea9eSmrg#define GEN9_BLENDFUNCTION_MIN 3 393fe8aea9eSmrg#define BLENDFUNCTION_MAX 4 394fe8aea9eSmrg 395fe8aea9eSmrg#define ALPHATEST_FORMAT_UNORM8 0 396fe8aea9eSmrg#define ALPHATEST_FORMAT_FLOAT32 1 397fe8aea9eSmrg 398fe8aea9eSmrg#define CHROMAKEY_KILL_ON_ANY_MATCH 0 399fe8aea9eSmrg#define CHROMAKEY_REPLACE_BLACK 1 400fe8aea9eSmrg 401fe8aea9eSmrg#define CLIP_API_OGL 0 402fe8aea9eSmrg#define CLIP_API_DX 1 403fe8aea9eSmrg 404fe8aea9eSmrg#define CLIPMODE_NORMAL 0 405fe8aea9eSmrg#define CLIPMODE_CLIP_ALL 1 406fe8aea9eSmrg#define CLIPMODE_CLIP_NON_REJECTED 2 407fe8aea9eSmrg#define CLIPMODE_REJECT_ALL 3 408fe8aea9eSmrg#define CLIPMODE_ACCEPT_ALL 4 409fe8aea9eSmrg 410fe8aea9eSmrg#define CLIP_NDCSPACE 0 411fe8aea9eSmrg#define CLIP_SCREENSPACE 1 412fe8aea9eSmrg 413fe8aea9eSmrg#define COMPAREFUNCTION_ALWAYS 0 414fe8aea9eSmrg#define COMPAREFUNCTION_NEVER 1 415fe8aea9eSmrg#define COMPAREFUNCTION_LESS 2 416fe8aea9eSmrg#define COMPAREFUNCTION_EQUAL 3 417fe8aea9eSmrg#define COMPAREFUNCTION_LEQUAL 4 418fe8aea9eSmrg#define COMPAREFUNCTION_GREATER 5 419fe8aea9eSmrg#define COMPAREFUNCTION_NOTEQUAL 6 420fe8aea9eSmrg#define COMPAREFUNCTION_GEQUAL 7 421fe8aea9eSmrg 422fe8aea9eSmrg#define COVERAGE_PIXELS_HALF 0 423fe8aea9eSmrg#define COVERAGE_PIXELS_1 1 424fe8aea9eSmrg#define COVERAGE_PIXELS_2 2 425fe8aea9eSmrg#define COVERAGE_PIXELS_4 3 426fe8aea9eSmrg 427fe8aea9eSmrg#define DEPTHFORMAT_D32_FLOAT_S8X24_UINT 0 428fe8aea9eSmrg#define DEPTHFORMAT_D32_FLOAT 1 429fe8aea9eSmrg#define DEPTHFORMAT_D24_UNORM_S8_UINT 2 430fe8aea9eSmrg#define DEPTHFORMAT_D16_UNORM 5 431fe8aea9eSmrg 432fe8aea9eSmrg#define FLOATING_POINT_IEEE_754 0 433fe8aea9eSmrg#define FLOATING_POINT_NON_IEEE_754 1 434fe8aea9eSmrg 435fe8aea9eSmrg#define INDEX_BYTE 0 436fe8aea9eSmrg#define INDEX_WORD 1 437fe8aea9eSmrg#define INDEX_DWORD 2 438fe8aea9eSmrg 439fe8aea9eSmrg#define LOGICOPFUNCTION_CLEAR 0 440fe8aea9eSmrg#define LOGICOPFUNCTION_NOR 1 441fe8aea9eSmrg#define LOGICOPFUNCTION_AND_INVERTED 2 442fe8aea9eSmrg#define LOGICOPFUNCTION_COPY_INVERTED 3 443fe8aea9eSmrg#define LOGICOPFUNCTION_AND_REVERSE 4 444fe8aea9eSmrg#define LOGICOPFUNCTION_INVERT 5 445fe8aea9eSmrg#define LOGICOPFUNCTION_XOR 6 446fe8aea9eSmrg#define LOGICOPFUNCTION_NAND 7 447fe8aea9eSmrg#define LOGICOPFUNCTION_AND 8 448fe8aea9eSmrg#define LOGICOPFUNCTION_EQUIV 9 449fe8aea9eSmrg#define LOGICOPFUNCTION_NOOP 10 450fe8aea9eSmrg#define LOGICOPFUNCTION_OR_INVERTED 11 451fe8aea9eSmrg#define LOGICOPFUNCTION_COPY 12 452fe8aea9eSmrg#define LOGICOPFUNCTION_OR_REVERSE 13 453fe8aea9eSmrg#define LOGICOPFUNCTION_OR 14 454fe8aea9eSmrg#define LOGICOPFUNCTION_SET 15 455fe8aea9eSmrg 456fe8aea9eSmrg#define MAPFILTER_NEAREST 0x0 457fe8aea9eSmrg#define MAPFILTER_LINEAR 0x1 458fe8aea9eSmrg#define MAPFILTER_ANISOTROPIC 0x2 459fe8aea9eSmrg#define MAPFILTER_FLEXIBLE 0x3 460fe8aea9eSmrg#define MAPFILTER_MONO 0x6 461fe8aea9eSmrg 462fe8aea9eSmrg#define MIPFILTER_NONE 0 463fe8aea9eSmrg#define MIPFILTER_NEAREST 1 464fe8aea9eSmrg#define MIPFILTER_LINEAR 3 465fe8aea9eSmrg 466fe8aea9eSmrg#define POLYGON_FRONT_FACING 0 467fe8aea9eSmrg#define POLYGON_BACK_FACING 1 468fe8aea9eSmrg 469fe8aea9eSmrg#define PREFILTER_ALWAYS 0x0 470fe8aea9eSmrg#define PREFILTER_NEVER 0x1 471fe8aea9eSmrg#define PREFILTER_LESS 0x2 472fe8aea9eSmrg#define PREFILTER_EQUAL 0x3 473fe8aea9eSmrg#define PREFILTER_LEQUAL 0x4 474fe8aea9eSmrg#define PREFILTER_GREATER 0x5 475fe8aea9eSmrg#define PREFILTER_NOTEQUAL 0x6 476fe8aea9eSmrg#define PREFILTER_GEQUAL 0x7 477fe8aea9eSmrg 478fe8aea9eSmrg#define RASTRULE_UPPER_LEFT 0 479fe8aea9eSmrg#define RASTRULE_UPPER_RIGHT 1 480fe8aea9eSmrg 481fe8aea9eSmrg#define STENCILOP_KEEP 0 482fe8aea9eSmrg#define STENCILOP_ZERO 1 483fe8aea9eSmrg#define STENCILOP_REPLACE 2 484fe8aea9eSmrg#define STENCILOP_INCRSAT 3 485fe8aea9eSmrg#define STENCILOP_DECRSAT 4 486fe8aea9eSmrg#define STENCILOP_INCR 5 487fe8aea9eSmrg#define STENCILOP_DECR 6 488fe8aea9eSmrg#define STENCILOP_INVERT 7 489fe8aea9eSmrg 490fe8aea9eSmrg#define SURFACE_MIPMAPLAYOUT_BELOW 0 491fe8aea9eSmrg#define SURFACE_MIPMAPLAYOUT_RIGHT 1 492fe8aea9eSmrg 493fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_FLOAT 0x000 494fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_SINT 0x001 495fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_UINT 0x002 496fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_UNORM 0x003 497fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_SNORM 0x004 498fe8aea9eSmrg#define SURFACEFORMAT_R64G64_FLOAT 0x005 499fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32X32_FLOAT 0x006 500fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_SSCALED 0x007 501fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32A32_USCALED 0x008 502fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_FLOAT 0x040 503fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_SINT 0x041 504fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_UINT 0x042 505fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_UNORM 0x043 506fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_SNORM 0x044 507fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_SSCALED 0x045 508fe8aea9eSmrg#define SURFACEFORMAT_R32G32B32_USCALED 0x046 509fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_UNORM 0x080 510fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_SNORM 0x081 511fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_SINT 0x082 512fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_UINT 0x083 513fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_FLOAT 0x084 514fe8aea9eSmrg#define SURFACEFORMAT_R32G32_FLOAT 0x085 515fe8aea9eSmrg#define SURFACEFORMAT_R32G32_SINT 0x086 516fe8aea9eSmrg#define SURFACEFORMAT_R32G32_UINT 0x087 517fe8aea9eSmrg#define SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS 0x088 518fe8aea9eSmrg#define SURFACEFORMAT_X32_TYPELESS_G8X24_UINT 0x089 519fe8aea9eSmrg#define SURFACEFORMAT_L32A32_FLOAT 0x08A 520fe8aea9eSmrg#define SURFACEFORMAT_R32G32_UNORM 0x08B 521fe8aea9eSmrg#define SURFACEFORMAT_R32G32_SNORM 0x08C 522fe8aea9eSmrg#define SURFACEFORMAT_R64_FLOAT 0x08D 523fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16X16_UNORM 0x08E 524fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16X16_FLOAT 0x08F 525fe8aea9eSmrg#define SURFACEFORMAT_A32X32_FLOAT 0x090 526fe8aea9eSmrg#define SURFACEFORMAT_L32X32_FLOAT 0x091 527fe8aea9eSmrg#define SURFACEFORMAT_I32X32_FLOAT 0x092 528fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_SSCALED 0x093 529fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16A16_USCALED 0x094 530fe8aea9eSmrg#define SURFACEFORMAT_R32G32_SSCALED 0x095 531fe8aea9eSmrg#define SURFACEFORMAT_R32G32_USCALED 0x096 532fe8aea9eSmrg#define SURFACEFORMAT_B8G8R8A8_UNORM 0x0C0 533fe8aea9eSmrg#define SURFACEFORMAT_B8G8R8A8_UNORM_SRGB 0x0C1 534fe8aea9eSmrg#define SURFACEFORMAT_R10G10B10A2_UNORM 0x0C2 535fe8aea9eSmrg#define SURFACEFORMAT_R10G10B10A2_UNORM_SRGB 0x0C3 536fe8aea9eSmrg#define SURFACEFORMAT_R10G10B10A2_UINT 0x0C4 537fe8aea9eSmrg#define SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM 0x0C5 538fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_UNORM 0x0C7 539fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_UNORM_SRGB 0x0C8 540fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_SNORM 0x0C9 541fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_SINT 0x0CA 542fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_UINT 0x0CB 543fe8aea9eSmrg#define SURFACEFORMAT_R16G16_UNORM 0x0CC 544fe8aea9eSmrg#define SURFACEFORMAT_R16G16_SNORM 0x0CD 545fe8aea9eSmrg#define SURFACEFORMAT_R16G16_SINT 0x0CE 546fe8aea9eSmrg#define SURFACEFORMAT_R16G16_UINT 0x0CF 547fe8aea9eSmrg#define SURFACEFORMAT_R16G16_FLOAT 0x0D0 548fe8aea9eSmrg#define SURFACEFORMAT_B10G10R10A2_UNORM 0x0D1 549fe8aea9eSmrg#define SURFACEFORMAT_B10G10R10A2_UNORM_SRGB 0x0D2 550fe8aea9eSmrg#define SURFACEFORMAT_R11G11B10_FLOAT 0x0D3 551fe8aea9eSmrg#define SURFACEFORMAT_R32_SINT 0x0D6 552fe8aea9eSmrg#define SURFACEFORMAT_R32_UINT 0x0D7 553fe8aea9eSmrg#define SURFACEFORMAT_R32_FLOAT 0x0D8 554fe8aea9eSmrg#define SURFACEFORMAT_R24_UNORM_X8_TYPELESS 0x0D9 555fe8aea9eSmrg#define SURFACEFORMAT_X24_TYPELESS_G8_UINT 0x0DA 556fe8aea9eSmrg#define SURFACEFORMAT_L16A16_UNORM 0x0DF 557fe8aea9eSmrg#define SURFACEFORMAT_I24X8_UNORM 0x0E0 558fe8aea9eSmrg#define SURFACEFORMAT_L24X8_UNORM 0x0E1 559fe8aea9eSmrg#define SURFACEFORMAT_A24X8_UNORM 0x0E2 560fe8aea9eSmrg#define SURFACEFORMAT_I32_FLOAT 0x0E3 561fe8aea9eSmrg#define SURFACEFORMAT_L32_FLOAT 0x0E4 562fe8aea9eSmrg#define SURFACEFORMAT_A32_FLOAT 0x0E5 563fe8aea9eSmrg#define SURFACEFORMAT_B8G8R8X8_UNORM 0x0E9 564fe8aea9eSmrg#define SURFACEFORMAT_B8G8R8X8_UNORM_SRGB 0x0EA 565fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8X8_UNORM 0x0EB 566fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8X8_UNORM_SRGB 0x0EC 567fe8aea9eSmrg#define SURFACEFORMAT_R9G9B9E5_SHAREDEXP 0x0ED 568fe8aea9eSmrg#define SURFACEFORMAT_B10G10R10X2_UNORM 0x0EE 569fe8aea9eSmrg#define SURFACEFORMAT_L16A16_FLOAT 0x0F0 570fe8aea9eSmrg#define SURFACEFORMAT_R32_UNORM 0x0F1 571fe8aea9eSmrg#define SURFACEFORMAT_R32_SNORM 0x0F2 572fe8aea9eSmrg#define SURFACEFORMAT_R10G10B10X2_USCALED 0x0F3 573fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_SSCALED 0x0F4 574fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8A8_USCALED 0x0F5 575fe8aea9eSmrg#define SURFACEFORMAT_R16G16_SSCALED 0x0F6 576fe8aea9eSmrg#define SURFACEFORMAT_R16G16_USCALED 0x0F7 577fe8aea9eSmrg#define SURFACEFORMAT_R32_SSCALED 0x0F8 578fe8aea9eSmrg#define SURFACEFORMAT_R32_USCALED 0x0F9 579fe8aea9eSmrg#define SURFACEFORMAT_B5G6R5_UNORM 0x100 580fe8aea9eSmrg#define SURFACEFORMAT_B5G6R5_UNORM_SRGB 0x101 581fe8aea9eSmrg#define SURFACEFORMAT_B5G5R5A1_UNORM 0x102 582fe8aea9eSmrg#define SURFACEFORMAT_B5G5R5A1_UNORM_SRGB 0x103 583fe8aea9eSmrg#define SURFACEFORMAT_B4G4R4A4_UNORM 0x104 584fe8aea9eSmrg#define SURFACEFORMAT_B4G4R4A4_UNORM_SRGB 0x105 585fe8aea9eSmrg#define SURFACEFORMAT_R8G8_UNORM 0x106 586fe8aea9eSmrg#define SURFACEFORMAT_R8G8_SNORM 0x107 587fe8aea9eSmrg#define SURFACEFORMAT_R8G8_SINT 0x108 588fe8aea9eSmrg#define SURFACEFORMAT_R8G8_UINT 0x109 589fe8aea9eSmrg#define SURFACEFORMAT_R16_UNORM 0x10A 590fe8aea9eSmrg#define SURFACEFORMAT_R16_SNORM 0x10B 591fe8aea9eSmrg#define SURFACEFORMAT_R16_SINT 0x10C 592fe8aea9eSmrg#define SURFACEFORMAT_R16_UINT 0x10D 593fe8aea9eSmrg#define SURFACEFORMAT_R16_FLOAT 0x10E 594fe8aea9eSmrg#define SURFACEFORMAT_I16_UNORM 0x111 595fe8aea9eSmrg#define SURFACEFORMAT_L16_UNORM 0x112 596fe8aea9eSmrg#define SURFACEFORMAT_A16_UNORM 0x113 597fe8aea9eSmrg#define SURFACEFORMAT_L8A8_UNORM 0x114 598fe8aea9eSmrg#define SURFACEFORMAT_I16_FLOAT 0x115 599fe8aea9eSmrg#define SURFACEFORMAT_L16_FLOAT 0x116 600fe8aea9eSmrg#define SURFACEFORMAT_A16_FLOAT 0x117 601fe8aea9eSmrg#define SURFACEFORMAT_R5G5_SNORM_B6_UNORM 0x119 602fe8aea9eSmrg#define SURFACEFORMAT_B5G5R5X1_UNORM 0x11A 603fe8aea9eSmrg#define SURFACEFORMAT_B5G5R5X1_UNORM_SRGB 0x11B 604fe8aea9eSmrg#define SURFACEFORMAT_R8G8_SSCALED 0x11C 605fe8aea9eSmrg#define SURFACEFORMAT_R8G8_USCALED 0x11D 606fe8aea9eSmrg#define SURFACEFORMAT_R16_SSCALED 0x11E 607fe8aea9eSmrg#define SURFACEFORMAT_R16_USCALED 0x11F 608fe8aea9eSmrg#define SURFACEFORMAT_R8_UNORM 0x140 609fe8aea9eSmrg#define SURFACEFORMAT_R8_SNORM 0x141 610fe8aea9eSmrg#define SURFACEFORMAT_R8_SINT 0x142 611fe8aea9eSmrg#define SURFACEFORMAT_R8_UINT 0x143 612fe8aea9eSmrg#define SURFACEFORMAT_A8_UNORM 0x144 613fe8aea9eSmrg#define SURFACEFORMAT_I8_UNORM 0x145 614fe8aea9eSmrg#define SURFACEFORMAT_L8_UNORM 0x146 615fe8aea9eSmrg#define SURFACEFORMAT_P4A4_UNORM 0x147 616fe8aea9eSmrg#define SURFACEFORMAT_A4P4_UNORM 0x148 617fe8aea9eSmrg#define SURFACEFORMAT_R8_SSCALED 0x149 618fe8aea9eSmrg#define SURFACEFORMAT_R8_USCALED 0x14A 619fe8aea9eSmrg#define SURFACEFORMAT_R1_UINT 0x181 620fe8aea9eSmrg#define SURFACEFORMAT_YCRCB_NORMAL 0x182 621fe8aea9eSmrg#define SURFACEFORMAT_YCRCB_SWAPUVY 0x183 622fe8aea9eSmrg#define SURFACEFORMAT_BC1_UNORM 0x186 623fe8aea9eSmrg#define SURFACEFORMAT_BC2_UNORM 0x187 624fe8aea9eSmrg#define SURFACEFORMAT_BC3_UNORM 0x188 625fe8aea9eSmrg#define SURFACEFORMAT_BC4_UNORM 0x189 626fe8aea9eSmrg#define SURFACEFORMAT_BC5_UNORM 0x18A 627fe8aea9eSmrg#define SURFACEFORMAT_BC1_UNORM_SRGB 0x18B 628fe8aea9eSmrg#define SURFACEFORMAT_BC2_UNORM_SRGB 0x18C 629fe8aea9eSmrg#define SURFACEFORMAT_BC3_UNORM_SRGB 0x18D 630fe8aea9eSmrg#define SURFACEFORMAT_MONO8 0x18E 631fe8aea9eSmrg#define SURFACEFORMAT_YCRCB_SWAPUV 0x18F 632fe8aea9eSmrg#define SURFACEFORMAT_YCRCB_SWAPY 0x190 633fe8aea9eSmrg#define SURFACEFORMAT_DXT1_RGB 0x191 634fe8aea9eSmrg#define SURFACEFORMAT_FXT1 0x192 635fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8_UNORM 0x193 636fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8_SNORM 0x194 637fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8_SSCALED 0x195 638fe8aea9eSmrg#define SURFACEFORMAT_R8G8B8_USCALED 0x196 639fe8aea9eSmrg#define SURFACEFORMAT_R64G64B64A64_FLOAT 0x197 640fe8aea9eSmrg#define SURFACEFORMAT_R64G64B64_FLOAT 0x198 641fe8aea9eSmrg#define SURFACEFORMAT_BC4_SNORM 0x199 642fe8aea9eSmrg#define SURFACEFORMAT_BC5_SNORM 0x19A 643fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16_UNORM 0x19C 644fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16_SNORM 0x19D 645fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16_SSCALED 0x19E 646fe8aea9eSmrg#define SURFACEFORMAT_R16G16B16_USCALED 0x19F 647fe8aea9eSmrg 648fe8aea9eSmrg#define SURFACE_1D 0 649fe8aea9eSmrg#define SURFACE_2D 1 650fe8aea9eSmrg#define SURFACE_3D 2 651fe8aea9eSmrg#define SURFACE_CUBE 3 652fe8aea9eSmrg#define SURFACE_BUFFER 4 653fe8aea9eSmrg#define SURFACE_NULL 7 654fe8aea9eSmrg 655fe8aea9eSmrg#define TEXCOORDMODE_WRAP 0 656fe8aea9eSmrg#define TEXCOORDMODE_MIRROR 1 657fe8aea9eSmrg#define TEXCOORDMODE_CLAMP 2 658fe8aea9eSmrg#define TEXCOORDMODE_CUBE 3 659fe8aea9eSmrg#define TEXCOORDMODE_CLAMP_BORDER 4 660fe8aea9eSmrg#define TEXCOORDMODE_MIRROR_ONCE 5 661fe8aea9eSmrg 662fe8aea9eSmrg#define THREAD_PRIORITY_NORMAL 0 663fe8aea9eSmrg#define THREAD_PRIORITY_HIGH 1 664fe8aea9eSmrg 665fe8aea9eSmrg#define VERTEX_SUBPIXEL_PRECISION_8BITS 0 666fe8aea9eSmrg#define VERTEX_SUBPIXEL_PRECISION_4BITS 1 667fe8aea9eSmrg 668fe8aea9eSmrg#define COMPONENT_NOSTORE 0 669fe8aea9eSmrg#define COMPONENT_STORE_SRC 1 670fe8aea9eSmrg#define COMPONENT_STORE_0 2 671fe8aea9eSmrg#define COMPONENT_STORE_1_FLT 3 672fe8aea9eSmrg#define COMPONENT_STORE_1_INT 4 673fe8aea9eSmrg#define COMPONENT_STORE_VID 5 674fe8aea9eSmrg#define COMPONENT_STORE_IID 6 675fe8aea9eSmrg#define COMPONENT_STORE_PID 7 676fe8aea9eSmrg 677fe8aea9eSmrg/* Execution Unit (EU) defines 678fe8aea9eSmrg */ 679fe8aea9eSmrg 680fe8aea9eSmrg#define GEN9_ALIGN_1 0 681fe8aea9eSmrg#define GEN9_ALIGN_16 1 682fe8aea9eSmrg 683fe8aea9eSmrg#define GEN9_ADDRESS_DIRECT 0 684fe8aea9eSmrg#define GEN9_ADDRESS_REGISTER_INDIRECT_REGISTER 1 685fe8aea9eSmrg 686fe8aea9eSmrg#define GEN9_CHANNEL_X 0 687fe8aea9eSmrg#define GEN9_CHANNEL_Y 1 688fe8aea9eSmrg#define GEN9_CHANNEL_Z 2 689fe8aea9eSmrg#define GEN9_CHANNEL_W 3 690fe8aea9eSmrg 691fe8aea9eSmrg#define GEN9_COMPRESSION_NONE 0 692fe8aea9eSmrg#define GEN9_COMPRESSION_2NDHALF 1 693fe8aea9eSmrg#define GEN9_COMPRESSION_COMPRESSED 2 694fe8aea9eSmrg 695fe8aea9eSmrg#define GEN9_CONDITIONAL_NONE 0 696fe8aea9eSmrg#define GEN9_CONDITIONAL_Z 1 697fe8aea9eSmrg#define GEN9_CONDITIONAL_NZ 2 698fe8aea9eSmrg#define GEN9_CONDITIONAL_EQ 1 /* Z */ 699fe8aea9eSmrg#define GEN9_CONDITIONAL_NEQ 2 /* NZ */ 700fe8aea9eSmrg#define GEN9_CONDITIONAL_G 3 701fe8aea9eSmrg#define GEN9_CONDITIONAL_GE 4 702fe8aea9eSmrg#define GEN9_CONDITIONAL_L 5 703fe8aea9eSmrg#define GEN9_CONDITIONAL_LE 6 704fe8aea9eSmrg#define GEN9_CONDITIONAL_C 7 705fe8aea9eSmrg#define GEN9_CONDITIONAL_O 8 706fe8aea9eSmrg 707fe8aea9eSmrg#define GEN9_DEBUG_NONE 0 708fe8aea9eSmrg#define GEN9_DEBUG_BREAKPOINT 1 709fe8aea9eSmrg 710fe8aea9eSmrg#define GEN9_DEPENDENCY_NORMAL 0 711fe8aea9eSmrg#define GEN9_DEPENDENCY_NOTCLEARED 1 712fe8aea9eSmrg#define GEN9_DEPENDENCY_NOTCHECKED 2 713fe8aea9eSmrg#define GEN9_DEPENDENCY_DISABLE 3 714fe8aea9eSmrg 715fe8aea9eSmrg#define GEN9_EXECUTE_1 0 716fe8aea9eSmrg#define GEN9_EXECUTE_2 1 717fe8aea9eSmrg#define GEN9_EXECUTE_4 2 718fe8aea9eSmrg#define GEN9_EXECUTE_8 3 719fe8aea9eSmrg#define GEN9_EXECUTE_16 4 720fe8aea9eSmrg#define GEN9_EXECUTE_32 5 721fe8aea9eSmrg 722fe8aea9eSmrg#define GEN9_HORIZONTAL_STRIDE_0 0 723fe8aea9eSmrg#define GEN9_HORIZONTAL_STRIDE_1 1 724fe8aea9eSmrg#define GEN9_HORIZONTAL_STRIDE_2 2 725fe8aea9eSmrg#define GEN9_HORIZONTAL_STRIDE_4 3 726fe8aea9eSmrg 727fe8aea9eSmrg#define GEN9_INSTRUCTION_NORMAL 0 728fe8aea9eSmrg#define GEN9_INSTRUCTION_SATURATE 1 729fe8aea9eSmrg 730fe8aea9eSmrg#define GEN9_OPCODE_MOV 1 731fe8aea9eSmrg#define GEN9_OPCODE_SEL 2 732fe8aea9eSmrg#define GEN9_OPCODE_NOT 4 733fe8aea9eSmrg#define GEN9_OPCODE_AND 5 734fe8aea9eSmrg#define GEN9_OPCODE_OR 6 735fe8aea9eSmrg#define GEN9_OPCODE_XOR 7 736fe8aea9eSmrg#define GEN9_OPCODE_SHR 8 737fe8aea9eSmrg#define GEN9_OPCODE_SHL 9 738fe8aea9eSmrg#define GEN9_OPCODE_RSR 10 739fe8aea9eSmrg#define GEN9_OPCODE_RSL 11 740fe8aea9eSmrg#define GEN9_OPCODE_ASR 12 741fe8aea9eSmrg#define GEN9_OPCODE_CMP 16 742fe8aea9eSmrg#define GEN9_OPCODE_JMPI 32 743fe8aea9eSmrg#define GEN9_OPCODE_IF 34 744fe8aea9eSmrg#define GEN9_OPCODE_IFF 35 745fe8aea9eSmrg#define GEN9_OPCODE_ELSE 36 746fe8aea9eSmrg#define GEN9_OPCODE_ENDIF 37 747fe8aea9eSmrg#define GEN9_OPCODE_DO 38 748fe8aea9eSmrg#define GEN9_OPCODE_WHILE 39 749fe8aea9eSmrg#define GEN9_OPCODE_BREAK 40 750fe8aea9eSmrg#define GEN9_OPCODE_CONTINUE 41 751fe8aea9eSmrg#define GEN9_OPCODE_HALT 42 752fe8aea9eSmrg#define GEN9_OPCODE_MSAVE 44 753fe8aea9eSmrg#define GEN9_OPCODE_MRESTORE 45 754fe8aea9eSmrg#define GEN9_OPCODE_PUSH 46 755fe8aea9eSmrg#define GEN9_OPCODE_POP 47 756fe8aea9eSmrg#define GEN9_OPCODE_WAIT 48 757fe8aea9eSmrg#define GEN9_OPCODE_SEND 49 758fe8aea9eSmrg#define GEN9_OPCODE_ADD 64 759fe8aea9eSmrg#define GEN9_OPCODE_MUL 65 760fe8aea9eSmrg#define GEN9_OPCODE_AVG 66 761fe8aea9eSmrg#define GEN9_OPCODE_FRC 67 762fe8aea9eSmrg#define GEN9_OPCODE_RNDU 68 763fe8aea9eSmrg#define GEN9_OPCODE_RNDD 69 764fe8aea9eSmrg#define GEN9_OPCODE_RNDE 70 765fe8aea9eSmrg#define GEN9_OPCODE_RNDZ 71 766fe8aea9eSmrg#define GEN9_OPCODE_MAC 72 767fe8aea9eSmrg#define GEN9_OPCODE_MACH 73 768fe8aea9eSmrg#define GEN9_OPCODE_LZD 74 769fe8aea9eSmrg#define GEN9_OPCODE_SAD2 80 770fe8aea9eSmrg#define GEN9_OPCODE_SADA2 81 771fe8aea9eSmrg#define GEN9_OPCODE_DP4 84 772fe8aea9eSmrg#define GEN9_OPCODE_DPH 85 773fe8aea9eSmrg#define GEN9_OPCODE_DP3 86 774fe8aea9eSmrg#define GEN9_OPCODE_DP2 87 775fe8aea9eSmrg#define GEN9_OPCODE_DPA2 88 776fe8aea9eSmrg#define GEN9_OPCODE_LINE 89 777fe8aea9eSmrg#define GEN9_OPCODE_NOP 126 778fe8aea9eSmrg 779fe8aea9eSmrg#define GEN9_PREDICATE_NONE 0 780fe8aea9eSmrg#define GEN9_PREDICATE_NORMAL 1 781fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ANYV 2 782fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ALLV 3 783fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ANY2H 4 784fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ALL2H 5 785fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ANY4H 6 786fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ALL4H 7 787fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ANY8H 8 788fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ALL8H 9 789fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ANY16H 10 790fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN1_ALL16H 11 791fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN16_REPLICATE_X 2 792fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN16_REPLICATE_Y 3 793fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN16_REPLICATE_Z 4 794fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN16_REPLICATE_W 5 795fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN16_ANY4H 6 796fe8aea9eSmrg#define GEN9_PREDICATE_ALIGN16_ALL4H 7 797fe8aea9eSmrg 798fe8aea9eSmrg#define GEN9_ARCHITECTURE_REGISTER_FILE 0 799fe8aea9eSmrg#define GEN9_GENERAL_REGISTER_FILE 1 800fe8aea9eSmrg#define GEN9_MESSAGE_REGISTER_FILE 2 801fe8aea9eSmrg#define GEN9_IMMEDIATE_VALUE 3 802fe8aea9eSmrg 803fe8aea9eSmrg#define GEN9_REGISTER_TYPE_UD 0 804fe8aea9eSmrg#define GEN9_REGISTER_TYPE_D 1 805fe8aea9eSmrg#define GEN9_REGISTER_TYPE_UW 2 806fe8aea9eSmrg#define GEN9_REGISTER_TYPE_W 3 807fe8aea9eSmrg#define GEN9_REGISTER_TYPE_UB 4 808fe8aea9eSmrg#define GEN9_REGISTER_TYPE_B 5 809fe8aea9eSmrg#define GEN9_REGISTER_TYPE_VF 5 /* packed float vector, immediates only? */ 810fe8aea9eSmrg#define GEN9_REGISTER_TYPE_HF 6 811fe8aea9eSmrg#define GEN9_REGISTER_TYPE_V 6 /* packed int vector, immediates only, uword dest only */ 812fe8aea9eSmrg#define GEN9_REGISTER_TYPE_F 7 813fe8aea9eSmrg 814fe8aea9eSmrg#define GEN9_ARF_NULL 0x00 815fe8aea9eSmrg#define GEN9_ARF_ADDRESS 0x10 816fe8aea9eSmrg#define GEN9_ARF_ACCUMULATOR 0x20 817fe8aea9eSmrg#define GEN9_ARF_FLAG 0x30 818fe8aea9eSmrg#define GEN9_ARF_MASK 0x40 819fe8aea9eSmrg#define GEN9_ARF_MASK_STACK 0x50 820fe8aea9eSmrg#define GEN9_ARF_MASK_STACK_DEPTH 0x60 821fe8aea9eSmrg#define GEN9_ARF_STATE 0x70 822fe8aea9eSmrg#define GEN9_ARF_CONTROL 0x80 823fe8aea9eSmrg#define GEN9_ARF_NOTIFICATION_COUNT 0x90 824fe8aea9eSmrg#define GEN9_ARF_IP 0xA0 825fe8aea9eSmrg 826fe8aea9eSmrg#define GEN9_AMASK 0 827fe8aea9eSmrg#define GEN9_IMASK 1 828fe8aea9eSmrg#define GEN9_LMASK 2 829fe8aea9eSmrg#define GEN9_CMASK 3 830fe8aea9eSmrg 831fe8aea9eSmrg#define GEN9_THREAD_NORMAL 0 832fe8aea9eSmrg#define GEN9_THREAD_ATOMIC 1 833fe8aea9eSmrg#define GEN9_THREAD_SWITCH 2 834fe8aea9eSmrg 835fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_0 0 836fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_1 1 837fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_2 2 838fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_4 3 839fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_8 4 840fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_16 5 841fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_32 6 842fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_64 7 843fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_128 8 844fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_256 9 845fe8aea9eSmrg#define GEN9_VERTICAL_STRIDE_ONE_DIMENSIONAL 0xF 846fe8aea9eSmrg 847fe8aea9eSmrg#define GEN9_WIDTH_1 0 848fe8aea9eSmrg#define GEN9_WIDTH_2 1 849fe8aea9eSmrg#define GEN9_WIDTH_4 2 850fe8aea9eSmrg#define GEN9_WIDTH_8 3 851fe8aea9eSmrg#define GEN9_WIDTH_16 4 852fe8aea9eSmrg 853fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_1K 0 854fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_2K 1 855fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_4K 2 856fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_8K 3 857fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_16K 4 858fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_32K 5 859fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_64K 6 860fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_128K 7 861fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_256K 8 862fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_512K 9 863fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_1M 10 864fe8aea9eSmrg#define GEN9_STATELESS_BUFFER_BOUNDARY_2M 11 865fe8aea9eSmrg 866fe8aea9eSmrg#define GEN9_POLYGON_FACING_FRONT 0 867fe8aea9eSmrg#define GEN9_POLYGON_FACING_BACK 1 868fe8aea9eSmrg 869fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_NULL 0 870fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_MATH 1 871fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_SAMPLER 2 872fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_GATEWAY 3 873fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_DATAPORT_READ 4 874fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_DATAPORT_WRITE 5 875fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_URB 6 876fe8aea9eSmrg#define GEN9_MESSAGE_TARGET_THREAD_SPAWNER 7 877fe8aea9eSmrg 878fe8aea9eSmrg#define GEN9_SAMPLER_RETURN_FORMAT_FLOAT32 0 879fe8aea9eSmrg#define GEN9_SAMPLER_RETURN_FORMAT_UINT32 2 880fe8aea9eSmrg#define GEN9_SAMPLER_RETURN_FORMAT_SINT32 3 881fe8aea9eSmrg 882fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD8_SAMPLE 0 883fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD16_SAMPLE 0 884fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS 0 885fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD8_KILLPIX 1 886fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD 1 887fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD 1 888fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_GRADIENTS 2 889fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS 2 890fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE 0 891fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE 2 892fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD4X2_RESINFO 2 893fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD8_RESINFO 2 894fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD16_RESINFO 2 895fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD4X2_LD 3 896fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD8_LD 3 897fe8aea9eSmrg#define GEN9_SAMPLER_MESSAGE_SIMD16_LD 3 898fe8aea9eSmrg 899fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_BLOCK_1_OWORDLOW 0 900fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_BLOCK_1_OWORDHIGH 1 901fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_BLOCK_2_OWORDS 2 902fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_BLOCK_4_OWORDS 3 903fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_BLOCK_8_OWORDS 4 904fe8aea9eSmrg 905fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_DUAL_BLOCK_1OWORD 0 906fe8aea9eSmrg#define GEN9_DATAPORT_OWORD_DUAL_BLOCK_4OWORDS 2 907fe8aea9eSmrg 908fe8aea9eSmrg#define GEN9_DATAPORT_DWORD_SCATTERED_BLOCK_8DWORDS 2 909fe8aea9eSmrg#define GEN9_DATAPORT_DWORD_SCATTERED_BLOCK_16DWORDS 3 910fe8aea9eSmrg 911fe8aea9eSmrg#define GEN9_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ 0 912fe8aea9eSmrg#define GEN9_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ 1 913fe8aea9eSmrg#define GEN9_DATAPORT_READ_MESSAGE_DWORD_BLOCK_READ 2 914fe8aea9eSmrg#define GEN9_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ 3 915fe8aea9eSmrg 916fe8aea9eSmrg#define GEN9_DATAPORT_READ_TARGET_DATA_CACHE 0 917fe8aea9eSmrg#define GEN9_DATAPORT_READ_TARGET_RENDER_CACHE 1 918fe8aea9eSmrg#define GEN9_DATAPORT_READ_TARGET_SAMPLER_CACHE 2 919fe8aea9eSmrg 920fe8aea9eSmrg#define GEN9_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE 0 921fe8aea9eSmrg#define GEN9_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED 1 922fe8aea9eSmrg#define GEN9_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01 2 923fe8aea9eSmrg#define GEN9_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23 3 924fe8aea9eSmrg#define GEN9_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01 4 925fe8aea9eSmrg 926fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE 0 927fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE 1 928fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_DWORD_BLOCK_WRITE 2 929fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE 3 930fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE 4 931fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_STREAMED_VERTEX_BUFFER_WRITE 5 932fe8aea9eSmrg#define GEN9_DATAPORT_WRITE_MESSAGE_FLUSH_RENDER_CACHE 7 933fe8aea9eSmrg 934fe8aea9eSmrg#define GEN9_MATH_FUNCTION_INV 1 935fe8aea9eSmrg#define GEN9_MATH_FUNCTION_LOG 2 936fe8aea9eSmrg#define GEN9_MATH_FUNCTION_EXP 3 937fe8aea9eSmrg#define GEN9_MATH_FUNCTION_SQRT 4 938fe8aea9eSmrg#define GEN9_MATH_FUNCTION_RSQ 5 939fe8aea9eSmrg#define GEN9_MATH_FUNCTION_SIN 6 /* was 7 */ 940fe8aea9eSmrg#define GEN9_MATH_FUNCTION_COS 7 /* was 8 */ 941fe8aea9eSmrg#define GEN9_MATH_FUNCTION_SINCOS 8 /* was 6 */ 942fe8aea9eSmrg#define GEN9_MATH_FUNCTION_TAN 9 943fe8aea9eSmrg#define GEN9_MATH_FUNCTION_POW 10 944fe8aea9eSmrg#define GEN9_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER 11 945fe8aea9eSmrg#define GEN9_MATH_FUNCTION_INT_DIV_QUOTIENT 12 946fe8aea9eSmrg#define GEN9_MATH_FUNCTION_INT_DIV_REMAINDER 13 947fe8aea9eSmrg 948fe8aea9eSmrg#define GEN9_MATH_INTEGER_UNSIGNED 0 949fe8aea9eSmrg#define GEN9_MATH_INTEGER_SIGNED 1 950fe8aea9eSmrg 951fe8aea9eSmrg#define GEN9_MATH_PRECISION_FULL 0 952fe8aea9eSmrg#define GEN9_MATH_PRECISION_PARTIAL 1 953fe8aea9eSmrg 954fe8aea9eSmrg#define GEN9_MATH_SATURATE_NONE 0 955fe8aea9eSmrg#define GEN9_MATH_SATURATE_SATURATE 1 956fe8aea9eSmrg 957fe8aea9eSmrg#define GEN9_MATH_DATA_VECTOR 0 958fe8aea9eSmrg#define GEN9_MATH_DATA_SCALAR 1 959fe8aea9eSmrg 960fe8aea9eSmrg#define GEN9_URB_OPCODE_WRITE 0 961fe8aea9eSmrg 962fe8aea9eSmrg#define GEN9_URB_SWIZZLE_NONE 0 963fe8aea9eSmrg#define GEN9_URB_SWIZZLE_INTERLEAVE 1 964fe8aea9eSmrg#define GEN9_URB_SWIZZLE_TRANSPOSE 2 965fe8aea9eSmrg 966fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_1K 0 967fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_2K 1 968fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_4K 2 969fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_8K 3 970fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_16K 4 971fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_32K 5 972fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_64K 6 973fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_128K 7 974fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_256K 8 975fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_512K 9 976fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_1M 10 977fe8aea9eSmrg#define GEN9_SCRATCH_SPACE_SIZE_2M 11 978fe8aea9eSmrg 979fe8aea9eSmrgstruct gen9_blend_state { 980fe8aea9eSmrg struct { 981fe8aea9eSmrg /* 00 */ uint32_t pad:19; 982fe8aea9eSmrg /* 19 */ uint32_t y_dither_offset:2; 983fe8aea9eSmrg /* 21 */ uint32_t x_dither_offset:2; 984fe8aea9eSmrg /* 23 */ uint32_t color_dither_enable:1; 985fe8aea9eSmrg /* 24 */ uint32_t alpha_test_function:3; 986fe8aea9eSmrg /* 27 */ uint32_t alpha_test:1; 987fe8aea9eSmrg /* 28 */ uint32_t alpha_to_coverage_dither:1; 988fe8aea9eSmrg /* 29 */ uint32_t alpha_to_one:1; 989fe8aea9eSmrg /* 30 */ uint32_t ia_blend:1; 990fe8aea9eSmrg /* 31 */ uint32_t alpha_to_coverage:1; 991fe8aea9eSmrg } common; 992fe8aea9eSmrg 993fe8aea9eSmrg struct { 994fe8aea9eSmrg /* 00 */ uint32_t write_disable_blue:1; 995fe8aea9eSmrg /* 01 */ uint32_t write_disable_green:1; 996fe8aea9eSmrg /* 02 */ uint32_t write_disable_red:1; 997fe8aea9eSmrg /* 03 */ uint32_t write_disable_alpha:1; 998fe8aea9eSmrg /* 04 */ uint32_t pad0:1; 999fe8aea9eSmrg /* 05 */ uint32_t alpha_blend_function:3; 1000fe8aea9eSmrg /* 08 */ uint32_t dest_alpha_blend_factor:5; 1001fe8aea9eSmrg /* 13 */ uint32_t source_alpha_blend_factor:5; 1002fe8aea9eSmrg /* 18 */ uint32_t color_blend_function:3; 1003fe8aea9eSmrg /* 21 */ uint32_t dest_blend_factor:5; 1004fe8aea9eSmrg /* 26 */ uint32_t source_blend_factor:5; 1005fe8aea9eSmrg /* 31 */ uint32_t color_blend:1; 1006fe8aea9eSmrg /* 32 */ uint32_t post_blend_clamp:1; 1007fe8aea9eSmrg /* 33 */ uint32_t pre_blend_clamp:1; 1008fe8aea9eSmrg /* 34 */ uint32_t color_clamp_range:2; 1009fe8aea9eSmrg /* 36 */ uint32_t pre_blend_source_only_clamp:1; 1010fe8aea9eSmrg /* 37 */ uint32_t pad1:22; 1011fe8aea9eSmrg /* 59 */ uint32_t logic_op_function:4; 1012fe8aea9eSmrg /* 63 */ uint32_t logic_op:1; 1013fe8aea9eSmrg } rt; 1014fe8aea9eSmrg}; 1015fe8aea9eSmrg 1016fe8aea9eSmrgstruct gen9_color_calc_state { 1017fe8aea9eSmrg struct { 1018fe8aea9eSmrg /* 00 */ uint32_t alpha_test_format:1; 1019fe8aea9eSmrg /* 01 */ uint32_t pad0:14; 1020fe8aea9eSmrg /* 15 */ uint32_t round_disable:1; 1021fe8aea9eSmrg /* 16 */ uint32_t bf_stencil_ref:8; 1022fe8aea9eSmrg /* 24 */ uint32_t stencil_ref:8; 1023fe8aea9eSmrg } cc0; 1024fe8aea9eSmrg 1025fe8aea9eSmrg union { 1026fe8aea9eSmrg float alpha_ref_f; 1027fe8aea9eSmrg struct { 1028fe8aea9eSmrg uint32_t ui:8; 1029fe8aea9eSmrg uint32_t pad0:24; 1030fe8aea9eSmrg } alpha_ref_fi; 1031fe8aea9eSmrg } cc1; 1032fe8aea9eSmrg 1033fe8aea9eSmrg float constant_r; 1034fe8aea9eSmrg float constant_g; 1035fe8aea9eSmrg float constant_b; 1036fe8aea9eSmrg float constant_a; 1037fe8aea9eSmrg}; 1038fe8aea9eSmrg 1039fe8aea9eSmrgstruct gen9_sampler_state { 1040fe8aea9eSmrg struct { 1041fe8aea9eSmrg /* 00 */ unsigned int aniso_algorithm:1; 1042fe8aea9eSmrg /* 01 */ unsigned int lod_bias:13; 1043fe8aea9eSmrg /* 14 */ unsigned int min_filter:3; 1044fe8aea9eSmrg /* 17 */ unsigned int mag_filter:3; 1045fe8aea9eSmrg /* 20 */ unsigned int mip_filter:2; 1046fe8aea9eSmrg /* 22 */ unsigned int base_level:5; 1047fe8aea9eSmrg /* 27 */ unsigned int lod_preclamp:2; 1048fe8aea9eSmrg /* 29 */ unsigned int default_color_mode:1; 1049fe8aea9eSmrg /* 30 */ unsigned int flexible_filter_clamp:1; 1050fe8aea9eSmrg /* 31 */ unsigned int disable:1; 1051fe8aea9eSmrg } ss0; 1052fe8aea9eSmrg 1053fe8aea9eSmrg struct { 1054fe8aea9eSmrg /* 00 */ unsigned int cube_control_mode:1; 1055fe8aea9eSmrg /* 01 */ unsigned int shadow_function:3; 1056fe8aea9eSmrg /* 04 */ unsigned int chroma_key_mode:1; 1057fe8aea9eSmrg /* 05 */ unsigned int chroma_key_index:2; 1058fe8aea9eSmrg /* 07 */ unsigned int chroma_key_enable:1; 1059fe8aea9eSmrg /* 08 */ unsigned int max_lod:12; 1060fe8aea9eSmrg /* 20 */ unsigned int min_lod:12; 1061fe8aea9eSmrg } ss1; 1062fe8aea9eSmrg 1063fe8aea9eSmrg struct { 1064fe8aea9eSmrg unsigned int pad:6; 1065fe8aea9eSmrg unsigned int default_color_pointer:26; 1066fe8aea9eSmrg } ss2; 1067fe8aea9eSmrg 1068fe8aea9eSmrg struct { 1069fe8aea9eSmrg /* 00 */ unsigned int r_wrap_mode:3; 1070fe8aea9eSmrg /* 03 */ unsigned int t_wrap_mode:3; 1071fe8aea9eSmrg /* 06 */ unsigned int s_wrap_mode:3; 1072fe8aea9eSmrg /* 09 */ unsigned int pad:1; 1073fe8aea9eSmrg /* 10 */ unsigned int non_normalized_coord:1; 1074fe8aea9eSmrg /* 11 */ unsigned int trilinear_quality:2; 1075fe8aea9eSmrg /* 13 */ unsigned int address_round:6; 1076fe8aea9eSmrg /* 19 */ unsigned int max_aniso:3; 1077fe8aea9eSmrg /* 22 */ unsigned int pad0:2; 1078fe8aea9eSmrg /* 24 */ unsigned int non_separable_filter:8; 1079fe8aea9eSmrg } ss3; 1080fe8aea9eSmrg}; 1081fe8aea9eSmrg 1082fe8aea9eSmrg/* Surface state DW0 */ 1083fe8aea9eSmrg#define SURFACE_RC_READ_WRITE (1 << 8) 1084fe8aea9eSmrg#define SURFACE_TILED (1 << 13) 1085fe8aea9eSmrg#define SURFACE_TILED_Y (1 << 12) 1086fe8aea9eSmrg#define SURFACE_FORMAT_SHIFT 18 1087fe8aea9eSmrg#define SURFACE_VALIGN_1 (0 << 16) /* reserved! */ 1088fe8aea9eSmrg#define SURFACE_VALIGN_4 (1 << 16) 1089fe8aea9eSmrg#define SURFACE_VALIGN_8 (2 << 16) 1090fe8aea9eSmrg#define SURFACE_VALIGN_16 (3 << 16) 1091fe8aea9eSmrg#define SURFACE_HALIGN_1 (0 << 14) /* reserved! */ 1092fe8aea9eSmrg#define SURFACE_HALIGN_4 (1 << 14) 1093fe8aea9eSmrg#define SURFACE_HALIGN_8 (2 << 14) 1094fe8aea9eSmrg#define SURFACE_HALIGN_16 (3 << 14) 1095fe8aea9eSmrg#define SURFACE_TYPE_SHIFT 29 1096fe8aea9eSmrg 1097fe8aea9eSmrg/* Surface state DW2 */ 1098fe8aea9eSmrg#define SURFACE_HEIGHT_SHIFT 16 1099fe8aea9eSmrg#define SURFACE_WIDTH_SHIFT 0 1100fe8aea9eSmrg 1101fe8aea9eSmrg/* Surface state DW3 */ 1102fe8aea9eSmrg#define SURFACE_DEPTH_SHIFT 21 1103fe8aea9eSmrg#define SURFACE_PITCH_SHIFT 0 1104fe8aea9eSmrg 1105fe8aea9eSmrg#define SWIZZLE_ZERO 0 1106fe8aea9eSmrg#define SWIZZLE_ONE 1 1107fe8aea9eSmrg#define SWIZZLE_RED 4 1108fe8aea9eSmrg#define SWIZZLE_GREEN 5 1109fe8aea9eSmrg#define SWIZZLE_BLUE 6 1110fe8aea9eSmrg#define SWIZZLE_ALPHA 7 1111fe8aea9eSmrg#define __SURFACE_SWIZZLE(r,g,b,a) \ 1112fe8aea9eSmrg ((a) << 16 | (b) << 19 | (g) << 22 | (r) << 25) 1113fe8aea9eSmrg#define SURFACE_SWIZZLE(r,g,b,a) \ 1114fe8aea9eSmrg __SURFACE_SWIZZLE(SWIZZLE_##r, SWIZZLE_##g, SWIZZLE_##b, SWIZZLE_##a) 1115fe8aea9eSmrg 1116fe8aea9eSmrgtypedef enum { 1117fe8aea9eSmrg SAMPLER_FILTER_NEAREST = 0, 1118fe8aea9eSmrg SAMPLER_FILTER_BILINEAR, 1119fe8aea9eSmrg FILTER_COUNT 1120fe8aea9eSmrg} sampler_filter_t; 1121fe8aea9eSmrg 1122fe8aea9eSmrgtypedef enum { 1123fe8aea9eSmrg SAMPLER_EXTEND_NONE = 0, 1124fe8aea9eSmrg SAMPLER_EXTEND_REPEAT, 1125fe8aea9eSmrg SAMPLER_EXTEND_PAD, 1126fe8aea9eSmrg SAMPLER_EXTEND_REFLECT, 1127fe8aea9eSmrg EXTEND_COUNT 1128fe8aea9eSmrg} sampler_extend_t; 1129fe8aea9eSmrg 1130fe8aea9eSmrg#endif 1131