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
|