File: usc_gen9.h

package info (click to toggle)
intel-graphics-compiler 1.0.12504.6-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 83,912 kB
  • sloc: cpp: 910,147; lisp: 202,655; ansic: 15,197; python: 4,025; yacc: 2,241; lex: 1,570; pascal: 244; sh: 104; makefile: 25
file content (153 lines) | stat: -rw-r--r-- 5,810 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*========================== begin_copyright_notice ============================

Copyright (C) 2019-2021 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

#ifndef STRUCTURE_ALINGMENT_VERIFICATION
#pragma once
#endif

#include "usc_gen8.h"

namespace USC
{


/*****************************************************************************\
ENUM:   BLEND_OPTIMIZATION_MODE
\*****************************************************************************/
enum BLEND_OPTIMIZATION_MODE
{
    BLEND_OPTIMIZATION_NONE,                        // No optimizations
    BLEND_OPTIMIZATION_SRC_ALPHA,                   // Discard: src.a == 0, Fill: src.a == 1
    BLEND_OPTIMIZATION_INV_SRC_ALPHA,               // Discard: src.a == 1, Fill: src.a == 0
    BLEND_OPTIMIZATION_SRC_ALPHA_DISCARD_ONLY,      // Discard: src.a == 0
    BLEND_OPTIMIZATION_SRC_ALPHA_FILL_ONLY,         // Fill:    src.a == 1
    BLEND_OPTIMIZATION_SRC_COLOR_ZERO,              // Discard: src.rgb == 0
    BLEND_OPTIMIZATION_SRC_COLOR_ONE,               // Discard: src.rgb == 1
    BLEND_OPTIMIZATION_SRC_BOTH_ZERO,               // Discard: src.rgba == 0
    BLEND_OPTIMIZATION_SRC_BOTH_ONE,                // Discard: src.rgba == 1
    BLEND_OPTIMIZATION_SRC_ALPHA_OR_COLOR_ZERO,     // Discard: src.a == 0 || src.rgb == 0
    BLEND_OPTIMIZATION_SRC_COLOR_ZERO_ALPHA_ONE,    // Discard: src.rgb == 0 && src.a == 1
    BLEND_OPTIMIZATION_SRC_COLOR_ZERO_ALPHA_IGNORE, // Discard: src.rgb == 0 and don't compute src.a
};

/*****************************************************************************\
\*****************************************************************************/
struct SCompilerOutputVertexShader_Gen9 : public SCompilerOutputVertexShader_Gen8
{
    bool         m_EnableVertexReordering;

    PADDING_1_BYTE
    PADDING_2_BYTES
    PADDING_4_BYTES
};



/*****************************************************************************\
STRUCT: SCompilerInputHullShader
\*****************************************************************************/
struct SCompilerInputHullShader : public SCompilerInputCommon
{
    float                                       m_TessellationFactorScale;
};

/* Structures for compile shader inputs*/

struct SCompilerInputVertexShader : public SCompilerInputCommon
{
};
struct SCompilerInputDomainShader : public SCompilerInputCommon
{
};
struct SCompilerInputGeometryShader : public SCompilerInputCommon
{
};

/*****************************************************************************\
\*****************************************************************************/
struct SCompilerOutputHullShader_Gen9 : public SCompilerOutputHullShader_Gen8
{
    // ### DW7 3DSTATE_HS ###
    unsigned int   DispatchMode;                        // HS dispatch mode         (DW7, BITFIELD_RANGE( 17,18 ))
    unsigned int   IncludePrimitiveID;                  // HS primitive ID          (DW7, BITFIELD(0))
};

/*****************************************************************************\
\*****************************************************************************/
struct SCompilerOutputDomainShader_Gen9 : public SCompilerOutputDomainShader_Gen7
{
    // ### DW7 3DSTATE_DS ###
    unsigned int    DispatchMode;                       //(DW7, bits  4...3)

    // ### DW8 3DSTATE_DS ###
    unsigned int    m_VertexURBEntryOutputReadOffset;   //(DW8, bits 26..21)
    unsigned int    m_VertexURBEntryOutputLength;       //(DW8, bits 20..16)

    // ### DW9 3DSTATE_DS ###
    unsigned int    m_DualPatchKernelProgramSize;
    void*           m_pDualPatchKernelProgram;          //(DW9, bits 31...6)

    bool            m_HasPrimitiveIdInput;

    PADDING_1_BYTE
    PADDING_2_BYTES
    PADDING_4_BYTES
    PADDING_4_BYTES_x32_ONLY
};

/*****************************************************************************\
\*****************************************************************************/
struct SCompilerOutputGeometryShader_Gen9 : public SCompilerOutputGeometryShader_Gen8
{
    // identical to Gen8
};

/*****************************************************************************\
\*****************************************************************************/
USC_PARAM()
struct SCompilerOutputPixelShader_Gen9 : public SCompilerOutputPixelShader_Gen8
{
    GFX3DSTATE_SF_ATTRIBUTE_ACTIVE_COMPONENT attributeActiveComponent[ NUM_PSHADER_INPUT_REGISTERS ];
    
    unsigned int OutputUseMask[ NUM_PSHADER_OUTPUT_REGISTERS ];

    // ### DW1 3DSTATE_PS_EXTRA ###
    GFX3DSTATE_PSEXTRA_INPUT_COVERAGE_MASK_MODE  m_InputCoverageMaskMode; // (bit 1..0)
    unsigned int m_BarycentricParamsArePulled; // (bit 3)
    unsigned int m_PixelShaderComputesStencil; // (bit 5)

    unsigned int m_FP16PayloadEnable;          // (bit 17)
    unsigned int m_CRastBinaryHeaderSize;
    unsigned int m_SampleCmpToDiscardOptimizationSlot;
    bool m_NeedsWAForSampleLInLoopPS;
    bool m_SampleCmpToDiscardOptimizationPossible;
    bool m_NeedPSSync;
    PADDING_1_BYTE
    PADDING_4_BYTES
};

/*****************************************************************************\
STRUCT: SCompilerInputComputeShader_Gen9
\*****************************************************************************/
struct SCompilerInputComputeShader_Gen9 : public SCompilerInputCommon_Gen7
{
    // False - legacy
    bool PooledEUMode;

    // Maximum size of available pool in physical (EU) threads
    unsigned int EUThreadsInPoolMax;
};

/*****************************************************************************\
\*****************************************************************************/
struct SCompilerOutputComputeShader_Gen9 : public SCompilerOutputComputeShader_Gen8
{
    // identical to Gen8
};

} // namespace USC