mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-04 16:24:29 +01:00
[d3d9] Don't mark DS hazards if not used by shader
This commit is contained in:
parent
8704ed7af6
commit
7f302fc350
@ -5576,11 +5576,13 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
inline void D3D9DeviceEx::UpdateActiveHazardsDS(uint32_t texMask) {
|
inline void D3D9DeviceEx::UpdateActiveHazardsDS(uint32_t texMask) {
|
||||||
|
auto masks = m_psShaderMasks;
|
||||||
|
masks.samplerMask &= m_activeDSTextures & texMask;
|
||||||
|
|
||||||
m_activeHazardsDS = m_activeHazardsDS & (~texMask);
|
m_activeHazardsDS = m_activeHazardsDS & (~texMask);
|
||||||
if (m_state.depthStencil != nullptr &&
|
if (m_state.depthStencil != nullptr &&
|
||||||
m_state.depthStencil->GetBaseTexture() != nullptr) {
|
m_state.depthStencil->GetBaseTexture() != nullptr) {
|
||||||
uint32_t samplerMask = m_activeDSTextures & texMask;
|
for (uint32_t samplerIdx : bit::BitMask(masks.samplerMask)) {
|
||||||
for (uint32_t samplerIdx : bit::BitMask(samplerMask)) {
|
|
||||||
IDirect3DBaseTexture9* dsBase = m_state.depthStencil->GetBaseTexture();
|
IDirect3DBaseTexture9* dsBase = m_state.depthStencil->GetBaseTexture();
|
||||||
IDirect3DBaseTexture9* texBase = m_state.textures[samplerIdx];
|
IDirect3DBaseTexture9* texBase = m_state.textures[samplerIdx];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user