summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-03-24 04:30:48 +0100
committerGitHub <noreply@github.com>2018-03-24 04:30:48 +0100
commita10baacf9e5ab48af7fb0ccbdc75371c9287d3ba (patch)
tree9ed56f99b9d2564f9250d3754e429eb0c8b43323 /src/video_core/renderer_opengl/gl_rasterizer.h
parentMerge pull request #255 from Subv/sd_card (diff)
parentgl_rasterizer: Fake render in green, because it's cooler. (diff)
downloadyuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.tar
yuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.tar.gz
yuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.tar.bz2
yuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.tar.lz
yuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.tar.xz
yuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.tar.zst
yuzu-a10baacf9e5ab48af7fb0ccbdc75371c9287d3ba.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.h')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 893fc530f..b387f383b 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -32,16 +32,22 @@ public:
void DrawTriangles() override;
void NotifyMaxwellRegisterChanged(u32 id) override;
void FlushAll() override;
- void FlushRegion(PAddr addr, u32 size) override;
- void InvalidateRegion(PAddr addr, u32 size) override;
- void FlushAndInvalidateRegion(PAddr addr, u32 size) override;
+ void FlushRegion(VAddr addr, u64 size) override;
+ void InvalidateRegion(VAddr addr, u64 size) override;
+ void FlushAndInvalidateRegion(VAddr addr, u64 size) override;
bool AccelerateDisplayTransfer(const void* config) override;
bool AccelerateTextureCopy(const void* config) override;
bool AccelerateFill(const void* config) override;
- bool AccelerateDisplay(const void* config, PAddr framebuffer_addr, u32 pixel_stride,
- ScreenInfo& screen_info) override;
+ bool AccelerateDisplay(const Tegra::FramebufferConfig& framebuffer, VAddr framebuffer_addr,
+ u32 pixel_stride, ScreenInfo& screen_info) override;
bool AccelerateDrawBatch(bool is_indexed) override;
+ /// OpenGL shader generated for a given Maxwell register state
+ struct MaxwellShader {
+ /// OpenGL shader resource
+ OGLShader shader;
+ };
+
struct VertexShader {
OGLShader shader;
};
@@ -117,6 +123,12 @@ private:
RasterizerCacheOpenGL res_cache;
+ /// Shader used for test renderering - to be removed once we have emulated shaders
+ MaxwellShader test_shader{};
+
+ const MaxwellShader* current_shader{};
+ bool shader_dirty{};
+
struct {
UniformData data;
bool dirty;
@@ -136,8 +148,6 @@ private:
static constexpr size_t STREAM_BUFFER_SIZE = 4 * 1024 * 1024;
std::unique_ptr<OGLStreamBuffer> stream_buffer;
- GLint vs_input_index_min;
- GLint vs_input_index_max;
GLsizeiptr vs_input_size;
void AnalyzeVertexArray(bool is_indexed);