From 5b6ed24cb8ea7617c2f02b199e299348d5dc9c51 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 17 Feb 2021 19:56:49 -0500 Subject: [PATCH] gallium/tessellator: Rename D3D11 defines We're Gallium, c'mon! Signed-off-by: Alyssa Rosenzweig Acked-by: Jesse Natalie Part-of: --- .../auxiliary/tessellator/p_tessellator.cpp | 18 +- .../auxiliary/tessellator/tessellator.cpp | 170 +++++++++--------- .../auxiliary/tessellator/tessellator.hpp | 96 +++++----- 3 files changed, 142 insertions(+), 142 deletions(-) diff --git a/src/gallium/auxiliary/tessellator/p_tessellator.cpp b/src/gallium/auxiliary/tessellator/p_tessellator.cpp index 168987efb22..06a6cfa583b 100644 --- a/src/gallium/auxiliary/tessellator/p_tessellator.cpp +++ b/src/gallium/auxiliary/tessellator/p_tessellator.cpp @@ -49,21 +49,21 @@ namespace pipe_tessellator_wrap enum pipe_tess_spacing ts_spacing, bool tes_vertex_order_cw, bool tes_point_mode) { - static D3D11_TESSELLATOR_PARTITIONING CVT_TS_D3D_PARTITIONING[] = { - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, // PIPE_TESS_SPACING_ODD - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN, // PIPE_TESS_SPACING_EVEN - D3D11_TESSELLATOR_PARTITIONING_INTEGER, // PIPE_TESS_SPACING_EQUAL + static PIPE_TESSELLATOR_PARTITIONING CVT_TS_D3D_PARTITIONING[] = { + PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, // PIPE_TESS_SPACING_ODD + PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN, // PIPE_TESS_SPACING_EVEN + PIPE_TESSELLATOR_PARTITIONING_INTEGER, // PIPE_TESS_SPACING_EQUAL }; - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE out_prim; + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE out_prim; if (tes_point_mode) - out_prim = D3D11_TESSELLATOR_OUTPUT_POINT; + out_prim = PIPE_TESSELLATOR_OUTPUT_POINT; else if (tes_prim_mode == PIPE_PRIM_LINES) - out_prim = D3D11_TESSELLATOR_OUTPUT_LINE; + out_prim = PIPE_TESSELLATOR_OUTPUT_LINE; else if (tes_vertex_order_cw) - out_prim = D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW; + out_prim = PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CW; else - out_prim = D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW; + out_prim = PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CCW; SUPER::Init(CVT_TS_D3D_PARTITIONING[ts_spacing], out_prim); diff --git a/src/gallium/auxiliary/tessellator/tessellator.cpp b/src/gallium/auxiliary/tessellator/tessellator.cpp index c8660043254..c2dc40f571e 100644 --- a/src/gallium/auxiliary/tessellator/tessellator.cpp +++ b/src/gallium/auxiliary/tessellator/tessellator.cpp @@ -354,7 +354,7 @@ INT32 floatToIDotF( const float& input ) // or equal to this allows avg. reduction on a quad patch // including rounding. -static const FXP s_fixedReciprocal[D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR+1] = +static const FXP s_fixedReciprocal[PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR+1] = { 0xffffffff, // 1/0 is the first entry (unused) 0x10000, 0x8000, 0x5555, 0x4000, @@ -453,8 +453,8 @@ CHWTessellator::~CHWTessellator() // User calls this. //--------------------------------------------------------------------------------------------------------------------------------- void CHWTessellator::Init( - D3D11_TESSELLATOR_PARTITIONING partitioning, - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive) + PIPE_TESSELLATOR_PARTITIONING partitioning, + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive) { if( 0 == m_Point ) { @@ -468,13 +468,13 @@ void CHWTessellator::Init( m_originalPartitioning = partitioning; switch( partitioning ) { - case D3D11_TESSELLATOR_PARTITIONING_INTEGER: + case PIPE_TESSELLATOR_PARTITIONING_INTEGER: default: break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: m_parity = TESSELLATOR_PARITY_ODD; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: m_parity = TESSELLATOR_PARITY_EVEN; break; } @@ -509,17 +509,17 @@ void CHWTessellator::TessellateQuadDomain( float tessFactor_Ueq0, float tessFact switch(m_outputPrimitive) { - case D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW: - case D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW: + case PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CW: + case PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CCW: // function orients them CCW if needed DefineClockwiseTriangle(0,1,3,/*indexStorageOffset*/0); DefineClockwiseTriangle(1,2,3,/*indexStorageOffset*/3); m_NumIndices = 6; break; - case D3D11_TESSELLATOR_OUTPUT_POINT: + case PIPE_TESSELLATOR_OUTPUT_POINT: DumpAllPoints(); break; - case D3D11_TESSELLATOR_OUTPUT_LINE: + case PIPE_TESSELLATOR_OUTPUT_LINE: DumpAllPointsAsInOrderLineList(); break; } @@ -528,12 +528,12 @@ void CHWTessellator::TessellateQuadDomain( float tessFactor_Ueq0, float tessFact QuadGeneratePoints(processedTessFactors); - if( m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_POINT ) + if( m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_POINT ) { DumpAllPoints(); return; } - if( m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_LINE ) + if( m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_LINE ) { DumpAllPointsAsInOrderLineList(); return; @@ -566,20 +566,20 @@ void CHWTessellator::QuadProcessTessFactors( float tessFactor_Ueq0, float tessFa float lowerBound = 0.0, upperBound = 0.0; switch(m_originalPartitioning) { - case D3D11_TESSELLATOR_PARTITIONING_INTEGER: - case D3D11_TESSELLATOR_PARTITIONING_POW2: // don�t care about pow2 distinction for validation, just treat as integer - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_INTEGER: + case PIPE_TESSELLATOR_PARTITIONING_POW2: // don�t care about pow2 distinction for validation, just treat as integer + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: - lowerBound = D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: + lowerBound = PIPE_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR; break; } @@ -597,10 +597,10 @@ void CHWTessellator::QuadProcessTessFactors( float tessFactor_Ueq0, float tessFa } // Clamp inside TessFactors - if(D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD == m_originalPartitioning) + if(PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD == m_originalPartitioning) { #define EPSILON 0.0000152587890625f // 2^(-16), min positive fixed point fraction -#define MIN_ODD_TESSFACTOR_PLUS_HALF_EPSILON (D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR + EPSILON/2) +#define MIN_ODD_TESSFACTOR_PLUS_HALF_EPSILON (PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR + EPSILON/2) // If any TessFactor will end up > 1 after floatToFixed conversion later, // then force the inside TessFactors to be > 1 so there is a picture frame. if( (tessFactor_Ueq0 > MIN_ODD_TESSFACTOR_PLUS_HALF_EPSILON) || @@ -611,7 +611,7 @@ void CHWTessellator::QuadProcessTessFactors( float tessFactor_Ueq0, float tessFa (insideTessFactor_V > MIN_ODD_TESSFACTOR_PLUS_HALF_EPSILON) ) { // Force picture frame - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR + EPSILON; + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR + EPSILON; } } @@ -1029,16 +1029,16 @@ void CHWTessellator::TessellateTriDomain( float tessFactor_Ueq0, float tessFacto switch(m_outputPrimitive) { - case D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW: - case D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW: + case PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CW: + case PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CCW: // function orients them CCW if needed DefineClockwiseTriangle(0,1,2,/*indexStorageBaseOffset*/m_NumIndices); m_NumIndices = 3; break; - case D3D11_TESSELLATOR_OUTPUT_POINT: + case PIPE_TESSELLATOR_OUTPUT_POINT: DumpAllPoints(); break; - case D3D11_TESSELLATOR_OUTPUT_LINE: + case PIPE_TESSELLATOR_OUTPUT_LINE: DumpAllPointsAsInOrderLineList(); break; } @@ -1047,12 +1047,12 @@ void CHWTessellator::TessellateTriDomain( float tessFactor_Ueq0, float tessFacto TriGeneratePoints(processedTessFactors); - if( m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_POINT ) + if( m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_POINT ) { DumpAllPoints(); return; } - if( m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_LINE ) + if( m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_LINE ) { DumpAllPointsAsInOrderLineList(); return; @@ -1084,20 +1084,20 @@ void CHWTessellator::TriProcessTessFactors( float tessFactor_Ueq0, float tessFac float lowerBound = 0.0, upperBound = 0.0; switch(m_originalPartitioning) { - case D3D11_TESSELLATOR_PARTITIONING_INTEGER: - case D3D11_TESSELLATOR_PARTITIONING_POW2: // don�t care about pow2 distinction for validation, just treat as integer - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_INTEGER: + case PIPE_TESSELLATOR_PARTITIONING_POW2: // don�t care about pow2 distinction for validation, just treat as integer + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: - lowerBound = D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: + lowerBound = PIPE_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR; break; } @@ -1113,7 +1113,7 @@ void CHWTessellator::TriProcessTessFactors( float tessFactor_Ueq0, float tessFac } // Clamp inside TessFactors - if(D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD == m_originalPartitioning) + if(PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD == m_originalPartitioning) { if( (tessFactor_Ueq0 > MIN_ODD_TESSFACTOR_PLUS_HALF_EPSILON) || (tessFactor_Veq0 > MIN_ODD_TESSFACTOR_PLUS_HALF_EPSILON) || @@ -1123,7 +1123,7 @@ void CHWTessellator::TriProcessTessFactors( float tessFactor_Ueq0, float tessFac // patches which have 2 insideTessFactors. { // Force picture frame - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR + EPSILON; + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR + EPSILON; } } @@ -1459,25 +1459,25 @@ void CHWTessellator::IsoLineProcessTessFactors( float TessFactor_V_LineDensity, float lowerBound = 0.0, upperBound = 0.0; switch(m_originalPartitioning) { - case D3D11_TESSELLATOR_PARTITIONING_INTEGER: - case D3D11_TESSELLATOR_PARTITIONING_POW2: // don�t care about pow2 distinction for validation, just treat as integer - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_INTEGER: + case PIPE_TESSELLATOR_PARTITIONING_POW2: // don�t care about pow2 distinction for validation, just treat as integer + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: - lowerBound = D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: + lowerBound = PIPE_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: - lowerBound = D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; - upperBound = D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR; + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: + lowerBound = PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR; + upperBound = PIPE_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR; break; } - TessFactor_V_LineDensity = tess_fmin( D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR, - tess_fmax( D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR, TessFactor_V_LineDensity ) ); + TessFactor_V_LineDensity = tess_fmin( PIPE_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR, + tess_fmax( PIPE_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR, TessFactor_V_LineDensity ) ); TessFactor_U_LineDetail = tess_fmin( upperBound, tess_fmax( lowerBound, TessFactor_U_LineDetail ) ); // Reset our vertex and index buffers. We have enough storage for the max tessFactor. @@ -1502,7 +1502,7 @@ void CHWTessellator::IsoLineProcessTessFactors( float TessFactor_V_LineDensity, ComputeTessFactorContext(fxpTessFactor_U_LineDetail, processedTessFactors.lineDetailTessFactorCtx); processedTessFactors.numPointsPerLine = NumPointsForTessFactor(fxpTessFactor_U_LineDetail); - OverridePartitioning(D3D11_TESSELLATOR_PARTITIONING_INTEGER); + OverridePartitioning(PIPE_TESSELLATOR_PARTITIONING_INTEGER); TessFactor_V_LineDensity = ceil(TessFactor_V_LineDensity); processedTessFactors.lineDensityParity = isEven(TessFactor_V_LineDensity) ? TESSELLATOR_PARITY_EVEN : TESSELLATOR_PARITY_ODD; @@ -1518,7 +1518,7 @@ void CHWTessellator::IsoLineProcessTessFactors( float TessFactor_V_LineDensity, // outside edge offsets m_NumPoints = processedTessFactors.numPointsPerLine * processedTessFactors.numLines; - if( m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_POINT ) + if( m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_POINT ) { m_NumIndices = m_NumPoints; } @@ -1556,7 +1556,7 @@ void CHWTessellator::IsoLineGeneratePoints( const PROCESSED_TESS_FACTORS_ISOLINE void CHWTessellator::IsoLineGenerateConnectivity( const PROCESSED_TESS_FACTORS_ISOLINE& processedTessFactors ) { int line, pointOffset, indexOffset; - if( m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_POINT ) + if( m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_POINT ) { for(line = 0, pointOffset = 0, indexOffset = 0; line < processedTessFactors.numLines; line++) { @@ -1650,7 +1650,7 @@ void CHWTessellator::DefineClockwiseTriangle(int index0, int index1, int index2, { // inputs a clockwise triangle, stores a CW or CCW triangle depending on the state DefineIndex(index0,indexStorageBaseOffset); - bool bWantClockwise = (m_outputPrimitive == D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW) ? true : false; + bool bWantClockwise = (m_outputPrimitive == PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CW) ? true : false; if( bWantClockwise ) { DefineIndex(index1,indexStorageBaseOffset+1); @@ -2115,10 +2115,10 @@ CHLSLTessellator::CHLSLTessellator() // User calls this. //--------------------------------------------------------------------------------------------------------------------------------- void CHLSLTessellator::Init( - D3D11_TESSELLATOR_PARTITIONING partitioning, - D3D11_TESSELLATOR_REDUCTION insideTessFactorReduction, - D3D11_TESSELLATOR_QUAD_REDUCTION_AXIS quadInsideTessFactorReductionAxis, - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive) + PIPE_TESSELLATOR_PARTITIONING partitioning, + PIPE_TESSELLATOR_REDUCTION insideTessFactorReduction, + PIPE_TESSELLATOR_QUAD_REDUCTION_AXIS quadInsideTessFactorReductionAxis, + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive) { CHWTessellator::Init(partitioning,outputPrimitive); m_LastComputedTessFactors[0] = m_LastComputedTessFactors[1] = m_LastComputedTessFactors[2] = @@ -2127,13 +2127,13 @@ void CHLSLTessellator::Init( m_originalPartitioning = partitioning; switch( partitioning ) { - case D3D11_TESSELLATOR_PARTITIONING_INTEGER: + case PIPE_TESSELLATOR_PARTITIONING_INTEGER: default: break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD: m_parity = TESSELLATOR_PARITY_ODD; break; - case D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: + case PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN: m_parity = TESSELLATOR_PARITY_EVEN; break; } @@ -2215,17 +2215,17 @@ void CHLSLTessellator::QuadHLSLProcessTessFactors( float tessFactor_Ueq0, float // Compute inside TessFactors float insideTessFactor[QUAD_AXES]; - if( m_quadInsideTessFactorReductionAxis == D3D11_TESSELLATOR_QUAD_REDUCTION_1_AXIS ) + if( m_quadInsideTessFactorReductionAxis == PIPE_TESSELLATOR_QUAD_REDUCTION_1_AXIS ) { switch( m_insideTessFactorReduction ) { - case D3D11_TESSELLATOR_REDUCTION_MIN: + case PIPE_TESSELLATOR_REDUCTION_MIN: insideTessFactor[U] = tess_fmin(tess_fmin(tessFactor_Veq0,tessFactor_Veq1),tess_fmin(tessFactor_Ueq0,tessFactor_Ueq1)); break; - case D3D11_TESSELLATOR_REDUCTION_MAX: + case PIPE_TESSELLATOR_REDUCTION_MAX: insideTessFactor[U] = tess_fmax(tess_fmax(tessFactor_Veq0,tessFactor_Veq1),tess_fmax(tessFactor_Ueq0,tessFactor_Ueq1)); break; - case D3D11_TESSELLATOR_REDUCTION_AVERAGE: + case PIPE_TESSELLATOR_REDUCTION_AVERAGE: insideTessFactor[U] = (tessFactor_Veq0 + tessFactor_Veq1 + tessFactor_Ueq0 + tessFactor_Ueq1) / 4; break; } @@ -2258,7 +2258,7 @@ void CHLSLTessellator::QuadHLSLProcessTessFactors( float tessFactor_Ueq0, float if( (TESSELLATOR_PARITY_ODD == insideTessFactorParity[U]) && (insideTessFactor[U] < FLOAT_THREE) ) { - if(D3D11_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) + if(PIPE_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) { insideTessFactor[U] = tess_fmin(FLOAT_THREE,tess_fmax(tess_fmax(tessFactor_Veq0,tessFactor_Veq1),tess_fmax(tessFactor_Ueq0,tessFactor_Ueq1))); } @@ -2281,15 +2281,15 @@ void CHLSLTessellator::QuadHLSLProcessTessFactors( float tessFactor_Ueq0, float { switch( m_insideTessFactorReduction ) { - case D3D11_TESSELLATOR_REDUCTION_MIN: + case PIPE_TESSELLATOR_REDUCTION_MIN: insideTessFactor[U] = tess_fmin(tessFactor_Veq0,tessFactor_Veq1); insideTessFactor[V] = tess_fmin(tessFactor_Ueq0,tessFactor_Ueq1); break; - case D3D11_TESSELLATOR_REDUCTION_MAX: + case PIPE_TESSELLATOR_REDUCTION_MAX: insideTessFactor[U] = tess_fmax(tessFactor_Veq0,tessFactor_Veq1); insideTessFactor[V] = tess_fmax(tessFactor_Ueq0,tessFactor_Ueq1); break; - case D3D11_TESSELLATOR_REDUCTION_AVERAGE: + case PIPE_TESSELLATOR_REDUCTION_AVERAGE: insideTessFactor[U] = (tessFactor_Veq0 + tessFactor_Veq1) / 2; insideTessFactor[V] = (tessFactor_Ueq0 + tessFactor_Ueq1) / 2; break; @@ -2329,7 +2329,7 @@ void CHLSLTessellator::QuadHLSLProcessTessFactors( float tessFactor_Ueq0, float if( (TESSELLATOR_PARITY_ODD == insideTessFactorParity[U]) && (insideTessFactor[U] < FLOAT_THREE) ) { - if(D3D11_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) + if(PIPE_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) { insideTessFactor[U] = tess_fmin(FLOAT_THREE,tess_fmax(tessFactor_Veq0,tessFactor_Veq1)); } @@ -2349,7 +2349,7 @@ void CHLSLTessellator::QuadHLSLProcessTessFactors( float tessFactor_Ueq0, float if( (TESSELLATOR_PARITY_ODD == insideTessFactorParity[V]) && (insideTessFactor[V] < FLOAT_THREE) ) { - if(D3D11_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) + if(PIPE_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) { insideTessFactor[V] = tess_fmin(FLOAT_THREE,tess_fmax(tessFactor_Ueq0,tessFactor_Ueq1)); } @@ -2455,13 +2455,13 @@ void CHLSLTessellator::TriHLSLProcessTessFactors( float tessFactor_Ueq0, float t float insideTessFactor; switch( m_insideTessFactorReduction ) { - case D3D11_TESSELLATOR_REDUCTION_MIN: + case PIPE_TESSELLATOR_REDUCTION_MIN: insideTessFactor = tess_fmin(tess_fmin(tessFactor_Ueq0,tessFactor_Veq0),tessFactor_Weq0); break; - case D3D11_TESSELLATOR_REDUCTION_MAX: + case PIPE_TESSELLATOR_REDUCTION_MAX: insideTessFactor = tess_fmax(tess_fmax(tessFactor_Ueq0,tessFactor_Veq0),tessFactor_Weq0); break; - case D3D11_TESSELLATOR_REDUCTION_AVERAGE: + case PIPE_TESSELLATOR_REDUCTION_AVERAGE: insideTessFactor = (tessFactor_Ueq0 + tessFactor_Veq0 + tessFactor_Weq0) / 3; break; } @@ -2489,7 +2489,7 @@ void CHLSLTessellator::TriHLSLProcessTessFactors( float tessFactor_Ueq0, float t { // To prevent snapping on edges, the "picture frame" comes // in using avg or max (and ignore inside TessFactor scaling) until it is at least 3. - if(D3D11_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) + if(PIPE_TESSELLATOR_REDUCTION_MAX == m_insideTessFactorReduction) { insideTessFactor = tess_fmin(FLOAT_THREE,tess_fmax(tessFactor_Ueq0,tess_fmax(tessFactor_Veq0,tessFactor_Weq0))); } @@ -2549,7 +2549,7 @@ void CHLSLTessellator::IsoLineHLSLProcessTessFactors( float TessFactor_V_LineDen RoundUpTessFactor(TessFactor_U_LineDetail); } - OverridePartitioning(D3D11_TESSELLATOR_PARTITIONING_INTEGER); + OverridePartitioning(PIPE_TESSELLATOR_PARTITIONING_INTEGER); ClampTessFactor(TessFactor_V_LineDensity); // Clamp unbounded user input to integer m_LastUnRoundedComputedTessFactors[0] = TessFactor_V_LineDensity; // Save off TessFactors so they can be returned to app @@ -2570,19 +2570,19 @@ void CHLSLTessellator::ClampTessFactor(float& TessFactor) { if( Pow2Partitioning() ) { - TessFactor = tess_fmin( D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR, tess_fmax( TessFactor, D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR) ); + TessFactor = tess_fmin( PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR, tess_fmax( TessFactor, PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR) ); } else if( IntegerPartitioning() ) { - TessFactor = tess_fmin( D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR, tess_fmax( TessFactor, D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR) ); + TessFactor = tess_fmin( PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR, tess_fmax( TessFactor, PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR) ); } else if( Odd() ) { - TessFactor = tess_fmin( D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR, tess_fmax( TessFactor, D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR) ); + TessFactor = tess_fmin( PIPE_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR, tess_fmax( TessFactor, PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR) ); } else // even { - TessFactor = tess_fmin( D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR, tess_fmax( TessFactor, D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR) ); + TessFactor = tess_fmin( PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR, tess_fmax( TessFactor, PIPE_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR) ); } } diff --git a/src/gallium/auxiliary/tessellator/tessellator.hpp b/src/gallium/auxiliary/tessellator/tessellator.hpp index d30b186e58c..592f91b6c81 100644 --- a/src/gallium/auxiliary/tessellator/tessellator.hpp +++ b/src/gallium/auxiliary/tessellator/tessellator.hpp @@ -58,49 +58,49 @@ // //================================================================================================================================= -#define D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR 1 -#define D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR 63 -#define D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR 2 -#define D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR 64 +#define PIPE_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR 1 +#define PIPE_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR 63 +#define PIPE_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR 2 +#define PIPE_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR 64 -#define D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR 1 -#define D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR 64 +#define PIPE_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR 1 +#define PIPE_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR 64 -#define D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR 64 // max of even and odd tessFactors +#define PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR 64 // max of even and odd tessFactors -#define MAX_POINT_COUNT ((D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR+1)*(D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR+1)) -#define MAX_INDEX_COUNT (D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR*D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR*2*3) +#define MAX_POINT_COUNT ((PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR+1)*(PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR+1)) +#define MAX_INDEX_COUNT (PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR*PIPE_TESSELLATOR_MAX_TESSELLATION_FACTOR*2*3) //================================================================================================================================= // Data types for the caller //================================================================================================================================= -enum D3D11_TESSELLATOR_PARTITIONING +enum PIPE_TESSELLATOR_PARTITIONING { - D3D11_TESSELLATOR_PARTITIONING_INTEGER, - D3D11_TESSELLATOR_PARTITIONING_POW2, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN + PIPE_TESSELLATOR_PARTITIONING_INTEGER, + PIPE_TESSELLATOR_PARTITIONING_POW2, + PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, + PIPE_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN }; -enum D3D11_TESSELLATOR_REDUCTION +enum PIPE_TESSELLATOR_REDUCTION { - D3D11_TESSELLATOR_REDUCTION_MIN, - D3D11_TESSELLATOR_REDUCTION_MAX, - D3D11_TESSELLATOR_REDUCTION_AVERAGE + PIPE_TESSELLATOR_REDUCTION_MIN, + PIPE_TESSELLATOR_REDUCTION_MAX, + PIPE_TESSELLATOR_REDUCTION_AVERAGE }; -enum D3D11_TESSELLATOR_QUAD_REDUCTION_AXIS +enum PIPE_TESSELLATOR_QUAD_REDUCTION_AXIS { - D3D11_TESSELLATOR_QUAD_REDUCTION_1_AXIS, - D3D11_TESSELLATOR_QUAD_REDUCTION_2_AXIS + PIPE_TESSELLATOR_QUAD_REDUCTION_1_AXIS, + PIPE_TESSELLATOR_QUAD_REDUCTION_2_AXIS }; -enum D3D11_TESSELLATOR_OUTPUT_PRIMITIVE +enum PIPE_TESSELLATOR_OUTPUT_PRIMITIVE { - D3D11_TESSELLATOR_OUTPUT_POINT, - D3D11_TESSELLATOR_OUTPUT_LINE, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW, + PIPE_TESSELLATOR_OUTPUT_POINT, + PIPE_TESSELLATOR_OUTPUT_LINE, + PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CW, + PIPE_TESSELLATOR_OUTPUT_TRIANGLE_CCW, }; typedef struct DOMAIN_POINT @@ -119,8 +119,8 @@ class CHWTessellator //--------------------------------------------------------------------------------------------------------------------------------- public: - void Init( D3D11_TESSELLATOR_PARTITIONING partitioning, - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive); + void Init( PIPE_TESSELLATOR_PARTITIONING partitioning, + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive); void TessellateIsoLineDomain( float TessFactor_V_LineDensity, float TessFactor_U_LineDetail ); @@ -166,7 +166,7 @@ public: static const int TRI_EDGES = 3; //============================================================================================================================= - enum TESSELLATOR_PARITY // derived from D3D11_TESSELLATOR_PARTITIONING + enum TESSELLATOR_PARITY // derived from PIPE_TESSELLATOR_PARTITIONING { // (note: for integer tessellation, both parities are used) TESSELLATOR_PARITY_EVEN, TESSELLATOR_PARITY_ODD @@ -175,9 +175,9 @@ private: TESSELLATOR_PARITY m_originalParity; // user chosen parity TESSELLATOR_PARITY m_parity; // current parity: if allowing mix of even/odd during discrete // tessellation, this can vary from the user defined parity - D3D11_TESSELLATOR_PARTITIONING m_originalPartitioning; // user chosen partitioning - D3D11_TESSELLATOR_PARTITIONING m_partitioning; // current partitioning. IsoLines overrides for line density - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE m_outputPrimitive; + PIPE_TESSELLATOR_PARTITIONING m_originalPartitioning; // user chosen partitioning + PIPE_TESSELLATOR_PARTITIONING m_partitioning; // current partitioning. IsoLines overrides for line density + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE m_outputPrimitive; DOMAIN_POINT* m_Point; // array where we will store u/v's for the points we generate int* m_Index; // array where we will store index topology int m_NumPoints; @@ -207,12 +207,12 @@ private: // HWIntegerPartitioning() - hardware doesn't care about what pow2 partitioning is - the query below is true for // both integer and pow2. - bool HWIntegerPartitioning() {return ((m_partitioning == D3D11_TESSELLATOR_PARTITIONING_INTEGER)|| - (m_partitioning == D3D11_TESSELLATOR_PARTITIONING_POW2)) ? true : false;} + bool HWIntegerPartitioning() {return ((m_partitioning == PIPE_TESSELLATOR_PARTITIONING_INTEGER)|| + (m_partitioning == PIPE_TESSELLATOR_PARTITIONING_POW2)) ? true : false;} // Tesselation Partitioning control void RestorePartitioning() {m_partitioning = m_originalPartitioning;}; - void OverridePartitioning(D3D11_TESSELLATOR_PARTITIONING partitioning) {m_partitioning = partitioning;} //isoline uses this for density + void OverridePartitioning(PIPE_TESSELLATOR_PARTITIONING partitioning) {m_partitioning = partitioning;} //isoline uses this for density // Call these to generate new points and indices. Max TessFactor storage is already allocated. int DefinePoint(FXP u, FXP v, int pointStorageOffset); @@ -355,7 +355,7 @@ private: }; //================================================================================================================================= -// CHLSLTessellator: D3D11 Tessellation HLSL Tessellator Interface +// CHLSLTessellator: PIPE Tessellation HLSL Tessellator Interface // Demonstrates TessFactor preconditioning code auto-generated by HLSL. Subject to change, but this // just represents the effect of shader code the HLSL compiler will generate in the Hull Shader, // so it does not affect hardware design at all. @@ -363,10 +363,10 @@ private: class CHLSLTessellator : public CHWTessellator { public: - void Init( D3D11_TESSELLATOR_PARTITIONING partitioning, - D3D11_TESSELLATOR_REDUCTION insideTessFactorReduction, - D3D11_TESSELLATOR_QUAD_REDUCTION_AXIS quadInsideTessFactorReductionAxis, - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive); + void Init( PIPE_TESSELLATOR_PARTITIONING partitioning, + PIPE_TESSELLATOR_REDUCTION insideTessFactorReduction, + PIPE_TESSELLATOR_QUAD_REDUCTION_AXIS quadInsideTessFactorReductionAxis, + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE outputPrimitive); void TessellateIsoLineDomain( float TessFactor_V_LineDensity, float TessFactor_U_LineDetail ); @@ -426,15 +426,15 @@ private: TESSELLATOR_PARITY m_originalParity; // user chosen parity TESSELLATOR_PARITY m_parity; // current parity: if allowing mix of even/odd during discrete // tessellation, this can vary from the user defined parity - D3D11_TESSELLATOR_PARTITIONING m_originalPartitioning; // user chosen partitioning - D3D11_TESSELLATOR_PARTITIONING m_partitioning; // current partitioning. IsoLines overrides for line density - D3D11_TESSELLATOR_OUTPUT_PRIMITIVE m_outputPrimitive; - D3D11_TESSELLATOR_REDUCTION m_insideTessFactorReduction; - D3D11_TESSELLATOR_QUAD_REDUCTION_AXIS m_quadInsideTessFactorReductionAxis; + PIPE_TESSELLATOR_PARTITIONING m_originalPartitioning; // user chosen partitioning + PIPE_TESSELLATOR_PARTITIONING m_partitioning; // current partitioning. IsoLines overrides for line density + PIPE_TESSELLATOR_OUTPUT_PRIMITIVE m_outputPrimitive; + PIPE_TESSELLATOR_REDUCTION m_insideTessFactorReduction; + PIPE_TESSELLATOR_QUAD_REDUCTION_AXIS m_quadInsideTessFactorReductionAxis; float m_LastComputedTessFactors[6]; // TessFactors used for last tessellation float m_LastUnRoundedComputedTessFactors[6]; // TessFactors used for last tessellation (before they were rounded) - bool IntegerPartitioning() {return (m_partitioning == D3D11_TESSELLATOR_PARTITIONING_INTEGER) ? true : false;} - bool Pow2Partitioning() {return (m_partitioning == D3D11_TESSELLATOR_PARTITIONING_POW2)? true : false;} + bool IntegerPartitioning() {return (m_partitioning == PIPE_TESSELLATOR_PARTITIONING_INTEGER) ? true : false;} + bool Pow2Partitioning() {return (m_partitioning == PIPE_TESSELLATOR_PARTITIONING_POW2)? true : false;} void ClampTessFactor(float& TessFactor); void RoundUpTessFactor(float& TessFactor); void CleanupFloatTessFactor(float& input); // clamp float to [1.0f... +INF] (incl NaN->1.0f) @@ -446,7 +446,7 @@ private: // Tesselation Partitioning control void RestorePartitioning() {m_partitioning = m_originalPartitioning;}; - void OverridePartitioning(D3D11_TESSELLATOR_PARTITIONING partitioning) {m_partitioning = partitioning;} //isoline uses this for density + void OverridePartitioning(PIPE_TESSELLATOR_PARTITIONING partitioning) {m_partitioning = partitioning;} //isoline uses this for density void IsoLineHLSLProcessTessFactors( float TessFactor_V_LineDensity, float TessFactor_U_LineDetail ); void TriHLSLProcessTessFactors( float tessFactor_Ueq0, float TessFactor_Veq0, float TessFactor_Weq0, float insideTessFactor );