mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-22 04:24:44 +00:00
More shader skips, video player fix and ReleaseWithDebInfo fix (#704)
This commit is contained in:
parent
481e18a245
commit
356fa7ba02
2 changed files with 8 additions and 5 deletions
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue