Integrating github/staging through commit ab87ed9

This commit is contained in:
alexpete
2021-04-09 11:27:37 -07:00
parent ae62a97894
commit 1044dc3da1
1582 changed files with 29374 additions and 519051 deletions
@@ -452,7 +452,6 @@ void CD3D9Renderer::FX_SetActiveRenderTargets(bool /*bAllowDip*/)
return;
}
FUNCTION_PROFILER_RENDER_FLAT
HRESULT hr = S_OK;
bool bDirty = false;
if (m_nMaxRT2Commit >= 0)
{
@@ -1757,8 +1756,8 @@ void CD3D9Renderer::FX_CommitStates(const SShaderTechnique* pTech, const SShader
rRP.m_FlagsShader_RT |= g_HWSR_MaskBit[HWSR_ALPHATEST];
}
int nBlend;
if (nBlend = (rRP.m_CurState & (GS_BLEND_MASK & ~GS_BLALPHA_MASK)))
int nBlend = rRP.m_CurState & (GS_BLEND_MASK & ~GS_BLALPHA_MASK);
if (nBlend)
{
//set alpha blend shader flag when the blend mode for color is set to alpha blend.
if (nBlend == (GS_BLSRC_SRCALPHA | GS_BLDST_ONEMINUSSRCALPHA)
@@ -2433,16 +2432,14 @@ TArray<CRenderObject*> CD3D9Renderer::s_tempObjects[2];
TArray<SRendItem*> CD3D9Renderer::s_tempRIs;
// Actual drawing of instances
void CD3D9Renderer::FX_DrawInstances([[maybe_unused]] CShader* ef, SShaderPass* slw, int nRE, uint32 nStartInst, uint32 nLastInst, uint32 nUsedAttr, [[maybe_unused]] byte* InstanceData, int nInstAttrMask, byte Attributes[], [[maybe_unused]] short dwCBufSlot)
void CD3D9Renderer::FX_DrawInstances([[maybe_unused]] CShader* ef, SShaderPass* slw, [[maybe_unused]] int nRE, uint32 nStartInst, uint32 nLastInst, uint32 nUsedAttr, [[maybe_unused]] byte* InstanceData, int nInstAttrMask, byte Attributes[], [[maybe_unused]] short dwCBufSlot)
{
DETAILED_PROFILE_MARKER("FX_DrawInstances");
uint32 i;
CHWShader_D3D* vp = (CHWShader_D3D*)slw->m_VShader;
SRenderPipeline& RESTRICT_REFERENCE rRP = m_RP;
SRendItem** rRIs = &(rRP.m_RIs[nRE][0]);
if (!CHWShader_D3D::s_pCurInstVS || !CHWShader_D3D::s_pCurInstPS || CHWShader_D3D::s_pCurInstVS->m_bFallback || CHWShader_D3D::s_pCurInstPS->m_bFallback)
{
@@ -2454,7 +2451,6 @@ void CD3D9Renderer::FX_DrawInstances([[maybe_unused]] CShader* ef, SShaderPass*
{
// Set the stream 3 to be per instance data and iterate once per instance
rRP.m_PersFlags1 &= ~(RBPF1_USESTREAM << 3);
int nCompared = 0;
if (!FX_CommitStreams(slw, false))
{
return;
@@ -2520,7 +2516,6 @@ void CD3D9Renderer::FX_DrawInstances([[maybe_unused]] CShader* ef, SShaderPass*
int nInsts = nLastInst - nStartInst + 1;
{
//PROFILE_FRAME(Draw_ShaderIndexMesh);
int nPolysPerInst = rRP.m_RendNumIndices / 3;
#ifndef _RELEASE
char instanceLabel[64];
if (CV_r_geominstancingdebug)
@@ -2551,6 +2546,7 @@ void CD3D9Renderer::FX_DrawInstances([[maybe_unused]] CShader* ef, SShaderPass*
#endif
#if defined(ENABLE_PROFILING_CODE)
int nPolysPerInst = rRP.m_RendNumIndices / 3;
int nPolysAll = nPolysPerInst * nInsts;
rRP.m_PS[rRP.m_nProcessThreadID].m_nPolygons[rRP.m_nPassGroupDIP] += rRP.m_RendNumIndices / 3;
rRP.m_PS[rRP.m_nProcessThreadID].m_nDIPs[rRP.m_nPassGroupDIP] += nInsts;
@@ -2766,7 +2762,6 @@ void CD3D9Renderer::FX_DrawShader_InstancedHW(CShader* ef, SShaderPass* slw)
int nStreamMask = rRP.m_FlagsStreams_Stream >> 1;
int nVFormat = rRP.m_CurVFormat.GetEnum();
uint32 nCO = 0;
int nCI = 0;
uint32 dwDeclarationSize = 0;
if (dwDeclarationSize + nUsedAttr - 1 > 16)
{
@@ -2785,7 +2780,6 @@ void CD3D9Renderer::FX_DrawShader_InstancedHW(CShader* ef, SShaderPass* slw)
nLastInst = nCurInst + (nParamsPerInstAllowed / nUsedAttr) - 1;
}
}
byte* inddata = NULL;
{
vb.Allocate(nLastInst - nCurInst + 1, nUsedAttr * INST_PARAM_SIZE);
data = (byte*) vb.Lock();
@@ -2946,7 +2940,6 @@ void CD3D9Renderer::FX_DrawBatchesSkinned(CShader* pSh, SShaderPass* pPass, SSki
CREMeshImpl* pRE = (CREMeshImpl*) rRP.m_pRE;
CRenderObject* const pSaveObj = rRP.m_pCurObject;
size_t size = 0, offset = 0;
CHWShader_D3D* pCurGS = (CHWShader_D3D*)pPass->m_GShader;
@@ -3137,9 +3130,8 @@ done:
#if defined(DO_RENDERSTATS)
void CD3D9Renderer::FX_TrackStats([[maybe_unused]] CRenderObject* pObj, [[maybe_unused]] IRenderMesh* pRenderMesh)
{
SRenderPipeline& RESTRICT_REFERENCE rRP = m_RP;
#if !defined(_RELEASE)
SRenderPipeline& RESTRICT_REFERENCE rRP = m_RP;
if (pObj)
{
if (IRenderNode* pRenderNode = (IRenderNode*)pObj->m_pRenderNode)
@@ -3271,8 +3263,9 @@ void CD3D9Renderer::FX_DrawBatches(CShader* pSh, SShaderPass* pPass)
if (bHWSkinning)
{
SRenderObjData* pOD = rRP.m_pCurObject->GetObjData();
if (!pOD || !(pSkinningData = pOD->m_pSkinningData))
if (!pOD || !pOD->m_pSkinningData)
{
pSkinningData = pOD->m_pSkinningData;
bHWSkinning = false;
Warning("Warning: Skinned geometry used without character instance");
}
@@ -3497,7 +3490,6 @@ void CD3D9Renderer::FX_DrawShader_General(CShader* ef, SShaderTechnique* pTech)
PROFILE_FRAME(DrawShader_Generic);
SThreadInfo& RESTRICT_REFERENCE rTI = m_RP.m_TI[m_RP.m_nProcessThreadID];
EF_Scissor(false, 0, 0, 0, 0);
@@ -3555,7 +3547,6 @@ void CD3D9Renderer::FX_DrawShader_Fur(CShader* ef, SShaderTechnique* pTech)
{
PROFILE_FRAME(DrawShader_Fur);
SThreadInfo& RESTRICT_REFERENCE rTI = m_RP.m_TI[m_RP.m_nProcessThreadID];
EF_Scissor(false, 0, 0, 0, 0);
@@ -3847,8 +3838,6 @@ void CD3D9Renderer::FX_DrawMultiLayers()
{
s_tempRIs.SetUse(0);
float fDistToCam = 500.0f;
float fDist = CV_r_detaildistance;
CRenderObject* pObj = m_RP.m_pCurObject;
uint32 nObj = 0;
@@ -3870,7 +3859,6 @@ void CD3D9Renderer::FX_DrawMultiLayers()
}
}
SShaderItem& pMtlShaderItem = pCurrMtl->GetShaderItem();
int nSaveLastRE = m_RP.m_nLastRE;
m_RP.m_nLastRE = 0;
@@ -4112,7 +4100,6 @@ bool CD3D9Renderer::FX_SetResourcesState()
m_RP.m_FlagsPerFlush &= ~RBSI_INSTANCED;
}
bool bRes = true;
if (uResFlags & MTL_FLAG_2SIDED)
{
D3DSetCull(eCULL_None);
@@ -4715,8 +4702,7 @@ void CD3D9Renderer::FX_FlushShader_ShadowGen()
}
}
SThreadInfo& RESTRICT_REFERENCE rTI = rRP.m_TI[rRP.m_nProcessThreadID];
assert(rTI.m_PersFlags & RBPF_SHADOWGEN);
assert(rRP.m_TI[rRP.m_nProcessThreadID].m_PersFlags & RBPF_SHADOWGEN);
CRenderObject* pObj = rRP.m_pCurObject;
@@ -4734,7 +4720,6 @@ void CD3D9Renderer::FX_FlushShader_ShadowGen()
}
#endif
SPipeStat& rPS = rRP.m_PS[rRP.m_nProcessThreadID];
#ifndef _RELEASE
sBatchStats(rRP);
#endif
@@ -4874,8 +4859,7 @@ void CD3D9Renderer::FX_FlushShader_ZPass()
}
}
SThreadInfo& RESTRICT_REFERENCE rTI = rRP.m_TI[rRP.m_nProcessThreadID];
assert(!(rTI.m_PersFlags & RBPF_SHADOWGEN));
assert(!(rRP.m_TI[rRP.m_nProcessThreadID].m_PersFlags & RBPF_SHADOWGEN));
assert(rRP.m_nBatchFilter & (FB_Z | FB_ZPREPASS | FB_POST_3D_RENDER));
#ifdef DO_RENDERLOG
@@ -5098,7 +5082,6 @@ void TexBlurAnisotropicVertical(CTexture* pTex, int nAmount, float fScale, [[may
gRenDev->FX_SetState(GS_NODEPTHTEST);
// setup texture offsets, for texture sampling
float s1 = 1.0f / (float) pTex->GetWidth();
float t1 = 1.0f / (float) pTex->GetHeight();
Vec4 pWeightsPS;
@@ -5234,14 +5217,6 @@ bool CD3D9Renderer::FX_DrawToRenderTarget(CShader* pShader, CShaderResources* pR
bMakeEnvironmentTexture = (!pEnvTex->m_pTex || pEnvTex->m_pTex->GetFormat() != eTF);
}
#if AZ_RENDER_TO_TEXTURE_GEM_ENABLED
// do not re-create the environment texture for the RTT pass for now, just use the existing one.
if (m_RP.m_TI[nThreadList].m_PersFlags & RBPF_RENDER_SCENE_TO_TEXTURE && pEnvTex->m_pTex)
{
bMakeEnvironmentTexture = false;
}
#endif // if AZ_RENDER_TO_TEXTURE_GEM_ENABLED
// clamping to a reasonable texture size
if (nWidth < 32)
{
@@ -5402,7 +5377,6 @@ bool CD3D9Renderer::FX_DrawToRenderTarget(CShader* pShader, CShaderResources* pR
Vec3 camPos = GetCamera().GetPosition();
float fDistCam = (camPos - m_RP.m_LastWaterPosUpdate).GetLength();
float fDotView = camView * m_RP.m_LastWaterViewdirUpdate;
float fDotUp = camUp * m_RP.m_LastWaterUpdirUpdate;
float fFOV = GetCamera().GetFov();
if (m_RP.m_fLastWaterUpdate - 1.0f > m_RP.m_TI[nThreadList].m_RealTime)
{