mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-08-03 11:23:49 +00:00
32 lines
1.1 KiB
C++
32 lines
1.1 KiB
C++
#ifndef EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_SHADERRESOURCEBARRIER_H_
|
|
#define EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_SHADERRESOURCEBARRIER_H_
|
|
|
|
#include "graphics/host_gpu/graphicContext.h"
|
|
#include "graphics/shader/recompiler/ir/ResourceMaterialization.h"
|
|
|
|
#include <vector>
|
|
|
|
namespace Libs::Graphics {
|
|
|
|
struct ShaderStageRuntime;
|
|
|
|
struct ShaderBufferWriteRange {
|
|
uint64_t address = 0;
|
|
uint64_t size = 0;
|
|
|
|
bool operator==(const ShaderBufferWriteRange& other) const = default;
|
|
};
|
|
|
|
vk::PipelineStageFlags ShaderPipelineStages(vk::ShaderStageFlags stages);
|
|
VulkanMemoryBarrier MakeShaderWriteDependency();
|
|
vk::BufferMemoryBarrier MakeGdsDependency(vk::Buffer buffer);
|
|
std::vector<ShaderBufferWriteRange>
|
|
CollectShaderBufferWrites(const ShaderRecompiler::IR::Program& program,
|
|
const ShaderRecompiler::IR::ResourceSnapshot& resources);
|
|
bool HasShaderBufferWrites(const ShaderStageRuntime& runtime);
|
|
void ShaderWriteBarrier(vk::CommandBuffer vk_buffer, vk::PipelineStageFlags source_stages);
|
|
|
|
} // namespace Libs::Graphics
|
|
|
|
#endif // EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_SHADERRESOURCEBARRIER_H_
|