mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
swr: [rasterizer jitter] fetch support for offsetting VertexID
Signed-off-by: Tim Rowley <timothy.o.rowley@intel.com>
This commit is contained in:
parent
6625fd08db
commit
d86e2487a0
2 changed files with 16 additions and 4 deletions
|
|
@ -158,8 +158,18 @@ Function* FetchJit::Create(const FETCH_COMPILE_STATE& fetchState)
|
|||
default: SWR_ASSERT(0, "Unsupported index type"); vIndices = nullptr; break;
|
||||
}
|
||||
|
||||
Value* vVertexId = vIndices;
|
||||
if (fetchState.bVertexIDOffsetEnable)
|
||||
{
|
||||
// Assuming one of baseVertex or startVertex is 0, so adding both should be functionally correct
|
||||
Value* vBaseVertex = VBROADCAST(LOAD(mpFetchInfo, { 0, SWR_FETCH_CONTEXT_BaseVertex }));
|
||||
Value* vStartVertex = VBROADCAST(LOAD(mpFetchInfo, { 0, SWR_FETCH_CONTEXT_StartVertex }));
|
||||
vVertexId = ADD(vIndices, vBaseVertex);
|
||||
vVertexId = ADD(vVertexId, vStartVertex);
|
||||
}
|
||||
|
||||
// store out vertex IDs
|
||||
STORE(vIndices, GEP(mpFetchInfo, { 0, SWR_FETCH_CONTEXT_VertexID }));
|
||||
STORE(vVertexId, GEP(mpFetchInfo, { 0, SWR_FETCH_CONTEXT_VertexID }));
|
||||
|
||||
// store out cut mask if enabled
|
||||
if (fetchState.bEnableCutIndex)
|
||||
|
|
|
|||
|
|
@ -100,9 +100,10 @@ struct FETCH_COMPILE_STATE
|
|||
uint32_t cutIndex{ 0xffffffff };
|
||||
|
||||
// Options that effect the JIT'd code
|
||||
bool bDisableVGATHER; // if enabled, FetchJit will generate loads/shuffles instead of VGATHERs
|
||||
bool bDisableIndexOOBCheck; // if enabled, FetchJit will exclude index OOB check
|
||||
bool bEnableCutIndex{ false }; // compares indices with the cut index and returns a cut mask
|
||||
bool bDisableVGATHER; // If enabled, FetchJit will generate loads/shuffles instead of VGATHERs
|
||||
bool bDisableIndexOOBCheck; // If enabled, FetchJit will exclude index OOB check
|
||||
bool bEnableCutIndex{ false }; // Compares indices with the cut index and returns a cut mask
|
||||
bool bVertexIDOffsetEnable{ false }; // Offset vertexID by StartVertex for non-indexed draws or BaseVertex for indexed draws
|
||||
|
||||
FETCH_COMPILE_STATE(bool disableVGATHER = false, bool diableIndexOOBCheck = false):
|
||||
bDisableVGATHER(disableVGATHER), bDisableIndexOOBCheck(diableIndexOOBCheck){ };
|
||||
|
|
@ -115,6 +116,7 @@ struct FETCH_COMPILE_STATE
|
|||
if (bDisableIndexOOBCheck != other.bDisableIndexOOBCheck) return false;
|
||||
if (bEnableCutIndex != other.bEnableCutIndex) return false;
|
||||
if (cutIndex != other.cutIndex) return false;
|
||||
if (bVertexIDOffsetEnable != other.bVertexIDOffsetEnable) return false;
|
||||
|
||||
for(uint32_t i = 0; i < numAttribs; ++i)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue