private static void Render(ISrvBindable textureArraySRV, ISrvBindable depthRead) { RC.VertexShader.Set(m_vs); if (MyRender11.Settings.DisplayTransparencyHeatMap) { if (MyRender11.DebugOverrides.OIT) { RC.PixelShader.Set(m_psDebugUniformAccumOIT); } else { RC.PixelShader.Set(m_psDebugUniformAccum); } } else { if (MyRender11.DebugOverrides.OIT) { RC.PixelShader.Set(m_psOIT); } else { RC.PixelShader.Set(m_ps); } } RC.SetVertexBuffer(0, null); RC.SetIndexBuffer(m_ib); RC.SetPrimitiveTopology(PrimitiveTopology.TriangleList); RC.AllShaderStages.SetConstantBuffer(1, m_activeListConstantBuffer); RC.AllShaderStages.SetSrv(0, depthRead); RC.PixelShader.SetSrvs(1, textureArraySRV); RC.VertexShader.SetSrv(0, m_particleBuffer); RC.VertexShader.SetSrv(1, m_emitterStructuredBuffer); RC.VertexShader.SetSrv(2, m_aliveIndexBuffer); ISrvBindable skybox = MyRender11.IsIntelBrokenCubemapsWorkaround ? MyGeneratedTextureManager.IntelFallbackCubeTex : (ISrvBindable)MyManagers.EnvironmentProbe.Cubemap; RC.VertexShader.SetSrv(MyCommon.SKYBOX_IBL_SLOT, skybox); // bind render target? if (!MyStereoRender.Enable) { RC.DrawIndexedInstancedIndirect(m_indirectDrawArgsBuffer, 0); } else { MyStereoRender.DrawIndexedInstancedIndirectGPUParticles(RC, m_indirectDrawArgsBuffer, 0); } MyRender11.ProcessDebugOutput(); RC.VertexShader.SetSrv(MyCommon.SKYBOX_IBL_SLOT, null); RC.AllShaderStages.SetSrv(0, null); }