Skip to content

Commit 0adba71

Browse files
authored
Fix D3D12 (#42)
1 parent a6fc252 commit 0adba71

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ if (MARATHON_RECOMP_ARCHITECTURE STREQUAL "x86_64" OR MARATHON_RECOMP_ARCHITECTU
4444
)
4545
endif()
4646

47+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
48+
# Normally only defined by Visual Studio, added for consistency
49+
add_compile_definitions(_DEBUG)
50+
endif()
51+
4752
add_subdirectory(${MARATHON_RECOMP_THIRDPARTY_ROOT})
4853
add_subdirectory(${MARATHON_RECOMP_TOOLS_ROOT})
4954

MarathonRecomp/gpu/video.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4039,23 +4039,25 @@ static RenderShader* GetOrLinkShader(GuestShader* guestShader, uint32_t specCons
40394039
assert(result);
40404040

40414041
guestShader->shader = g_device->createShader(decoded.data(), decoded.size(), "shaderMain", RenderShaderFormat::SPIRV);
4042-
#ifdef _DEBUG
4043-
guestShader->shader->setName(fmt::format("{}:{:x}", guestShader->shaderCacheEntry->filename, guestShader->shaderCacheEntry->hash));
4044-
#endif
40454042
break;
40464043
}
40474044
case Backend::D3D12:
40484045
{
40494046
guestShader->shader = g_device->createShader(g_shaderCache.get() + guestShader->shaderCacheEntry->dxilOffset,
40504047
guestShader->shaderCacheEntry->dxilSize, "shaderMain", RenderShaderFormat::DXIL);
4048+
break;
40514049
}
40524050
case Backend::METAL:
40534051
{
40544052
guestShader->shader = g_device->createShader(g_shaderCache.get() + guestShader->shaderCacheEntry->airOffset,
4055-
guestShader->shaderCacheEntry->airSize, "shaderMain", RenderShaderFormat::METAL);
4053+
guestShader->shaderCacheEntry->airSize, "shaderMain", RenderShaderFormat::METAL);
40564054
break;
40574055
}
40584056
}
4057+
4058+
#ifdef _DEBUG
4059+
guestShader->shader->setName(fmt::format("{}:{:x}", guestShader->shaderCacheEntry->filename, guestShader->shaderCacheEntry->hash));
4060+
#endif
40594061
}
40604062

40614063
return guestShader->shader.get();
@@ -4179,6 +4181,10 @@ static RenderShader* GetOrLinkShader(GuestShader* guestShader, uint32_t specCons
41794181
}
41804182

41814183
shader = linkedShader.get();
4184+
4185+
#ifdef _DEBUG
4186+
guestShader->shader->setName(fmt::format("{}:{:x}", guestShader->shaderCacheEntry->filename, guestShader->shaderCacheEntry->hash));
4187+
#endif
41824188
}
41834189
}
41844190
#endif

tools/XenosRecomp

0 commit comments

Comments
 (0)