More shader skips, video player fix and ReleaseWithDebInfo fix (#704)

This commit is contained in:
rafael-57 2024-09-02 22:02:18 +02:00 committed by GitHub
parent 481e18a245
commit 356fa7ba02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 5 deletions

View file

@ -112,7 +112,9 @@ bool ComputePipeline::BindResources(VideoCore::BufferCache& buffer_cache,
const auto src_sharp = src.GetSharp(*info);
const auto& dst = info->texture_buffers[1];
const auto dst_sharp = dst.GetSharp(*info);
if (dst_sharp.base_address == 0x510e0000 || dst_sharp.base_address == 0x1926e0000 ||
if (dst_sharp.base_address == 0x510e0000 ||
dst_sharp.base_address == 0x1926e0000 || // Release
dst_sharp.base_address == 0x1928e0000 || // ReleaseWithDebInfo
dst_sharp.base_address == 0x1d42e0000) {
VideoCore::ImageViewInfo view_info;
view_info.format = vk::Format::eR8G8B8A8Unorm;
@ -234,7 +236,7 @@ bool ComputePipeline::BindResources(VideoCore::BufferCache& buffer_cache,
LOG_WARNING(Render_Vulkan, "Unexpected metadata read by a CS shader (buffer)");
}
}
if (desc.is_written && info->pgm_hash != 0xfefebf9f && info->pgm_hash != 0x3d5ebf4e) {
if (desc.is_written && info->pgm_hash != 0xfefebf9f) { // Not skipping 0x3d5ebf4e as well, otherwise video player will be black
texture_cache.InvalidateMemory(address, size);
}
const u32 alignment = instance.TexelBufferMinAlignment();

View file

@ -64,9 +64,10 @@ const ComputePipeline* PipelineCache::GetComputePipeline() {
}
bool ShouldSkipShader(u64 shader_hash, const char* shader_type) {
static constexpr std::array<u64, 7> skip_hashes = {0xa509af23, 0x4ca76892, 0xa954e79d,
0x42f2a521, 0x2da7fe60, 0x1635154c,
0x8e3f8dc4};
static constexpr std::array<u64, 11> skip_hashes = {0xa509af23, 0x4ca76892, 0xa954e79d,
0x42f2a521, 0x2da7fe60, 0x1635154c,
0x8e3f8dc4, 0xc0cbc309, 0x77d1c63,
0xff7a6d7c, 0xddfbac23};
if (std::ranges::contains(skip_hashes, shader_hash)) {
LOG_WARNING(Render_Vulkan, "Skipped {} shader hash {:#x}.", shader_type, shader_hash);
return true;