Преглед изворни кода

gl_graphics_pipeline: Fix GLASM storage buffer detection

Ameer J пре 2 година
родитељ
комит
f9ef721ca6
1 измењених фајлова са 2 додато и 2 уклоњено
  1. 2 2
      src/video_core/renderer_opengl/gl_graphics_pipeline.cpp

+ 2 - 2
src/video_core/renderer_opengl/gl_graphics_pipeline.cpp

@@ -220,7 +220,8 @@ GraphicsPipeline::GraphicsPipeline(const Device& device, TextureCache& texture_c
     ASSERT(num_textures <= MAX_TEXTURES);
     ASSERT(num_textures <= MAX_TEXTURES);
     ASSERT(num_images <= MAX_IMAGES);
     ASSERT(num_images <= MAX_IMAGES);
 
 
-    const bool assembly_shaders{assembly_programs[0].handle != 0};
+    const auto backend = device.GetShaderBackend();
+    const bool assembly_shaders{backend == Settings::ShaderBackend::Glasm};
     use_storage_buffers =
     use_storage_buffers =
         !assembly_shaders || num_storage_buffers <= device.GetMaxGLASMStorageBufferBlocks();
         !assembly_shaders || num_storage_buffers <= device.GetMaxGLASMStorageBufferBlocks();
     writes_global_memory &= !use_storage_buffers;
     writes_global_memory &= !use_storage_buffers;
@@ -230,7 +231,6 @@ GraphicsPipeline::GraphicsPipeline(const Device& device, TextureCache& texture_c
         GenerateTransformFeedbackState();
         GenerateTransformFeedbackState();
     }
     }
     const bool in_parallel = thread_worker != nullptr;
     const bool in_parallel = thread_worker != nullptr;
-    const auto backend = device.GetShaderBackend();
     auto func{[this, sources_ = std::move(sources), sources_spirv_ = std::move(sources_spirv),
     auto func{[this, sources_ = std::move(sources), sources_spirv_ = std::move(sources_spirv),
                shader_notify, backend, in_parallel,
                shader_notify, backend, in_parallel,
                force_context_flush](ShaderContext::Context*) mutable {
                force_context_flush](ShaderContext::Context*) mutable {