mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-10 19:17:57 -05:00
shader: Fix memory barriers
This commit is contained in:
@ -29,9 +29,8 @@ void EmitReturn(EmitContext& ctx);
|
||||
void EmitUnreachable(EmitContext& ctx);
|
||||
void EmitDemoteToHelperInvocation(EmitContext& ctx, Id continue_label);
|
||||
void EmitBarrier(EmitContext& ctx);
|
||||
void EmitMemoryBarrierWorkgroupLevel(EmitContext& ctx);
|
||||
void EmitMemoryBarrierDeviceLevel(EmitContext& ctx);
|
||||
void EmitMemoryBarrierSystemLevel(EmitContext& ctx);
|
||||
void EmitWorkgroupMemoryBarrier(EmitContext& ctx);
|
||||
void EmitDeviceMemoryBarrier(EmitContext& ctx);
|
||||
void EmitPrologue(EmitContext& ctx);
|
||||
void EmitEpilogue(EmitContext& ctx);
|
||||
void EmitEmitVertex(EmitContext& ctx, const IR::Value& stream);
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
namespace Shader::Backend::SPIRV {
|
||||
namespace {
|
||||
void EmitMemoryBarrierImpl(EmitContext& ctx, spv::Scope scope) {
|
||||
void MemoryBarrier(EmitContext& ctx, spv::Scope scope) {
|
||||
const auto semantics{
|
||||
spv::MemorySemanticsMask::AcquireRelease | spv::MemorySemanticsMask::UniformMemory |
|
||||
spv::MemorySemanticsMask::WorkgroupMemory | spv::MemorySemanticsMask::AtomicCounterMemory |
|
||||
@ -27,16 +27,12 @@ void EmitBarrier(EmitContext& ctx) {
|
||||
ctx.Constant(ctx.U32[1], static_cast<u32>(memory_semantics)));
|
||||
}
|
||||
|
||||
void EmitMemoryBarrierWorkgroupLevel(EmitContext& ctx) {
|
||||
EmitMemoryBarrierImpl(ctx, spv::Scope::Workgroup);
|
||||
void EmitWorkgroupMemoryBarrier(EmitContext& ctx) {
|
||||
MemoryBarrier(ctx, spv::Scope::Workgroup);
|
||||
}
|
||||
|
||||
void EmitMemoryBarrierDeviceLevel(EmitContext& ctx) {
|
||||
EmitMemoryBarrierImpl(ctx, spv::Scope::Device);
|
||||
}
|
||||
|
||||
void EmitMemoryBarrierSystemLevel(EmitContext& ctx) {
|
||||
EmitMemoryBarrierImpl(ctx, spv::Scope::CrossDevice);
|
||||
void EmitDeviceMemoryBarrier(EmitContext& ctx) {
|
||||
MemoryBarrier(ctx, spv::Scope::Device);
|
||||
}
|
||||
|
||||
} // namespace Shader::Backend::SPIRV
|
||||
|
Reference in New Issue
Block a user