swr/rast: Fetch compile state changes

Add ForceSequentialAccessEnable and InstanceIDOffsetEnable bools to
FETCH_COMPILE_STATE.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
Tim Rowley 2017-09-12 13:38:31 -05:00
parent cd6e91d3a2
commit efe7fa4384
2 changed files with 12 additions and 1 deletions

View File

@ -275,6 +275,12 @@ Function* FetchJit::Create(const FETCH_COMPILE_STATE& fetchState)
: JitGatherVertices(fetchState, streams, vIndices, pVtxOut);
#endif
if (fetchState.bInstanceIDOffsetEnable)
{
// TODO:
SWR_ASSERT((0), "Add support for handling InstanceID Offset Enable.");
}
RET_VOID();
JitManager::DumpToFile(fetch, "src");

View File

@ -107,6 +107,9 @@ struct FETCH_COMPILE_STATE
bool bVertexIDOffsetEnable{ false }; // Offset vertexID by StartVertex for non-indexed draws or BaseVertex for indexed draws
bool bPartialVertexBuffer{ false }; // for indexed draws, map illegal indices to a known resident vertex
bool bForceSequentialAccessEnable{ false };
bool bInstanceIDOffsetEnable{ false };
FETCH_COMPILE_STATE(bool disableVGATHER = false, bool diableIndexOOBCheck = false):
bDisableVGATHER(disableVGATHER), bDisableIndexOOBCheck(diableIndexOOBCheck){ };
@ -120,11 +123,13 @@ struct FETCH_COMPILE_STATE
if (cutIndex != other.cutIndex) return false;
if (bVertexIDOffsetEnable != other.bVertexIDOffsetEnable) return false;
if (bPartialVertexBuffer != other.bPartialVertexBuffer) return false;
if (bForceSequentialAccessEnable != other.bForceSequentialAccessEnable) return false;
if (bInstanceIDOffsetEnable != other.bInstanceIDOffsetEnable) return false;
for(uint32_t i = 0; i < numAttribs; ++i)
{
if((layout[i].bits != other.layout[i].bits) ||
((layout[i].InstanceEnable == 1) &&
(((layout[i].InstanceEnable == 1) || (layout[i].InstanceStrideEnable == 1)) &&
(layout[i].InstanceAdvancementState != other.layout[i].InstanceAdvancementState))){
return false;
}