[Mesa-dev] [PATCH 3/9] swr/rast: Fetch compile state changes
Tim Rowley
timothy.o.rowley at intel.com
Fri Sep 22 00:46:46 UTC 2017
Add ForceSequentialAccessEnable and InstanceIDOffsetEnable bools to
FETCH_COMPILE_STATE.
---
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp | 6 ++++++
src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h | 7 ++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp
index f3a4b27..9061298 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 0dd6de7..18fa963 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;
}
--
2.7.4
More information about the mesa-dev
mailing list