summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-03-02 23:31:26 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-03-13 22:33:04 +0100
commit8e9f23f393763a6d76605206eeb20f6f8885d9a9 (patch)
tree35b28be3f345cd0223732b4803e13de40764d1dc /src/video_core/renderer_opengl/gl_rasterizer.h
parentgl_shader_decompiler: Decorate output attributes with XFB layout (diff)
downloadyuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.tar
yuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.tar.gz
yuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.tar.bz2
yuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.tar.lz
yuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.tar.xz
yuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.tar.zst
yuzu-8e9f23f393763a6d76605206eeb20f6f8885d9a9.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.h')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index e6424f5d2..2d3be2437 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -168,9 +168,6 @@ private:
/// Syncs the scissor test state to match the guest state
void SyncScissorTest();
- /// Syncs the transform feedback state to match the guest state
- void SyncTransformFeedback();
-
/// Syncs the point state to match the guest state
void SyncPointState();
@@ -192,6 +189,12 @@ private:
/// Syncs the framebuffer sRGB state to match the guest state
void SyncFramebufferSRGB();
+ /// Begin a transform feedback
+ void BeginTransformFeedback(GLenum primitive_mode);
+
+ /// End a transform feedback
+ void EndTransformFeedback();
+
/// Check for extension that are not strictly required but are needed for correct emulation
void CheckExtensions();
@@ -229,6 +232,11 @@ private:
BindBuffersRangePushBuffer bind_ubo_pushbuffer{GL_UNIFORM_BUFFER};
BindBuffersRangePushBuffer bind_ssbo_pushbuffer{GL_SHADER_STORAGE_BUFFER};
+ std::array<OGLBuffer, Tegra::Engines::Maxwell3D::Regs::NumTransformFeedbackBuffers>
+ transform_feedback_buffers;
+ std::bitset<Tegra::Engines::Maxwell3D::Regs::NumTransformFeedbackBuffers>
+ enabled_transform_feedback_buffers;
+
/// Number of commands queued to the OpenGL driver. Reseted on flush.
std::size_t num_queued_commands = 0;