aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-07-12 02:01:27 -0300
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-09-05 20:35:51 -0300
commit6170337001cc11deabd57023a548c44de4242e9d (patch)
treee9d6260d49ef69db4c5525d176a202892594acc7 /src/video_core/renderer_opengl/gl_rasterizer.cpp
parent5edf24b51025fef4d78e5f9d4038267e472b2f55 (diff)
gl_rasterizer: Implement image bindings
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 8a59b86e3..6636b3c74 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -1022,7 +1022,7 @@ bool RasterizerOpenGL::SetupTexture(const Shader& shader, u32 binding,
auto& unit{state.texture_units[binding]};
unit.sampler = sampler_cache.GetSampler(texture.tsc);
- const auto view = texture_cache.GetImageSurface(texture.tic, entry);
+ const auto view = texture_cache.GetTextureSurface(texture.tic, entry);
if (!view) {
// Can occur when texture addr is null or its memory is unmapped/invalid
unit.texture = 0;
@@ -1054,7 +1054,12 @@ void RasterizerOpenGL::SetupComputeImages(const Shader& shader) {
tex_handle.raw = compute.AccessConstBuffer32(cbuf.first, cbuf.second);
return compute.GetTextureInfo(tex_handle, entry.GetOffset());
}();
- UNIMPLEMENTED();
+ const auto view = texture_cache.GetImageSurface(texture.tic, entry);
+ if (!view) {
+ state.images[bindpoint] = 0;
+ continue;
+ }
+ state.images[bindpoint] = view->GetTexture();
}
}