diff options
| author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-05-23 20:19:56 -0300 |
|---|---|---|
| committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-05-24 02:47:56 -0300 |
| commit | 46177901b8d76f16223ac2716abcd6393faae25a (patch) | |
| tree | 4d98018a7f9ad90b23b991003bd0316b88c7772e /src/video_core/renderer_opengl/gl_device.h | |
| parent | b6dcb1ae4d95b8fe83357709526ed07c9b923652 (diff) | |
gl_device: Add test to detect broken component indexing
Component indexing on AMD's proprietary driver is broken. This commit adds
a test to detect when we are on a driver that can't successfully manage
component indexing.
It dispatches a dummy draw with just one vertex shader that writes to an
indexed SSBO from the GPU with data sent through uniforms, it then reads
that data from the CPU and compares the expected output.
Diffstat (limited to 'src/video_core/renderer_opengl/gl_device.h')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_device.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_device.h b/src/video_core/renderer_opengl/gl_device.h index de8490682..8c8c93760 100644 --- a/src/video_core/renderer_opengl/gl_device.h +++ b/src/video_core/renderer_opengl/gl_device.h @@ -30,13 +30,19 @@ public: return has_variable_aoffi; } + bool HasComponentIndexingBug() const { + return has_component_indexing_bug; + } + private: static bool TestVariableAoffi(); + static bool TestComponentIndexingBug(); std::size_t uniform_buffer_alignment{}; u32 max_vertex_attributes{}; u32 max_varyings{}; bool has_variable_aoffi{}; + bool has_component_indexing_bug{}; }; } // namespace OpenGL |
