mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 23:50:11 +01:00
swr/rast: Add extra (optional) parameter in GATHERPS
Now also takes in an additional parameter (draw context) for future expansion. Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
0b46c7b3b0
commit
94922dbe4b
4 changed files with 10 additions and 5 deletions
|
|
@ -38,6 +38,8 @@ namespace SwrJit
|
|||
struct Builder
|
||||
{
|
||||
Builder(JitManager *pJitMgr);
|
||||
virtual ~Builder() {}
|
||||
|
||||
IRBuilder<> *IRB() { return mpIRBuilder; };
|
||||
JitManager *JM() { return mpJitMgr; }
|
||||
|
||||
|
|
|
|||
|
|
@ -589,7 +589,7 @@ namespace SwrJit
|
|||
/// @param vIndices - SIMD wide value of VB byte offsets
|
||||
/// @param vMask - SIMD wide mask that controls whether to access memory or the src values
|
||||
/// @param scale - value to scale indices by
|
||||
Value *Builder::GATHERPS(Value *vSrc, Value *pBase, Value *vIndices, Value *vMask, uint8_t scale)
|
||||
Value *Builder::GATHERPS(Value *vSrc, Value *pBase, Value *vIndices, Value *vMask, uint8_t scale, Value *pDrawContext)
|
||||
{
|
||||
Value *vGather;
|
||||
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ Value *MASKLOADD(Value* src, Value* mask);
|
|||
void Gather4(const SWR_FORMAT format, Value* pSrcBase, Value* byteOffsets,
|
||||
Value* mask, Value* vGatherComponents[], bool bPackedOutput);
|
||||
|
||||
Value *GATHERPS(Value *src, Value *pBase, Value *indices, Value *mask, uint8_t scale = 1);
|
||||
virtual Value *GATHERPS(Value *src, Value *pBase, Value *indices, Value *mask, uint8_t scale = 1, Value *pDrawContext = nullptr);
|
||||
Value *GATHERPS_16(Value *src, Value *pBase, Value *indices, Value *mask, uint8_t scale = 1);
|
||||
|
||||
void GATHER4PS(const SWR_FORMAT_INFO &info, Value* pSrcBase, Value* byteOffsets,
|
||||
|
|
|
|||
|
|
@ -55,9 +55,12 @@ enum ConversionType
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Interface to Jitting a fetch shader
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct FetchJit : public Builder
|
||||
struct FetchJit :
|
||||
public Builder
|
||||
{
|
||||
FetchJit(JitManager* pJitMgr) : Builder(pJitMgr){};
|
||||
FetchJit(JitManager* pJitMgr) :
|
||||
Builder(pJitMgr)
|
||||
{}
|
||||
|
||||
Function* Create(const FETCH_COMPILE_STATE& fetchState);
|
||||
|
||||
|
|
@ -1361,7 +1364,7 @@ void FetchJit::JitGatherVertices(const FETCH_COMPILE_STATE &fetchState,
|
|||
// But, we know that elements must be aligned for FETCH. :)
|
||||
// Right shift the offset by a bit and then scale by 2 to remove the sign extension.
|
||||
Value *vShiftedOffsets = LSHR(vOffsets, 1);
|
||||
vVertexElements[currentVertexElement++] = GATHERPS(gatherSrc, pStreamBase, vShiftedOffsets, vGatherMask, 2);
|
||||
vVertexElements[currentVertexElement++] = GATHERPS(gatherSrc, pStreamBase, vShiftedOffsets, vGatherMask, 2, mpPrivateContext);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue