aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr/rasterizer
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/swr/rasterizer')
-rw-r--r--src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp6
-rw-r--r--src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h7
2 files changed, 12 insertions, 1 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
index f3a4b27d9a9..906129829c8 100644
--- a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
+++ b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
@@ -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");
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h
index 0dd6de759ad..18fa96357b8 100644
--- a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h
+++ b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h
@@ -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;
}