aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2019-11-06Merge pull request #3057 from ReinUsesLisp/buffer-sub-databunnei
gl_rasterizer: Upload constant buffers with glNamedBufferSubData
2019-11-06Merge pull request #3039 from ReinUsesLisp/cleanup-samplersRodrigo Locatti
shader/node: Unpack bindless texture encoding
2019-11-02gl_rasterizer: Re-enable stream buffer memory due to global memoryReinUsesLisp
Global memory is still using the stream buffer when it shouldn't. As a temporary fix re-enable the stream buffer on compute.
2019-11-02gl_rasterizer: Upload constant buffers with glNamedBufferSubDataReinUsesLisp
Nvidia's OpenGL driver maps gl(Named)BufferSubData with some requirements to a fast. This path has an extra memcpy but updates the buffer without orphaning or waiting for previous calls. It can be seen as a better model for "push constants" that can upload a whole UBO instead of 256 bytes. This path has some requirements established here: http://on-demand.gputechconf.com/gtc/2014/presentations/S4379-opengl-44-scene-rendering-techniques.pdf#page=24 Instead of using the stream buffer, this commits moves constant buffers uploads to calls of glNamedBufferSubData and from my testing it brings a performance improvement. This is disabled when the vendor is not Nvidia since it brings performance regressions.
2019-10-29Merge pull request #3046 from ReinUsesLisp/clean-gl-statebunnei
gl_state: Miscellaneous clean up
2019-10-29Merge pull request #3035 from ReinUsesLisp/rasterizer-acceleratedbunnei
rasterizer_accelerated: Add intermediary for GPU rasterizers
2019-10-30gl_state: Use std::array::fill instead of std::fillRodrigo Locatti
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2019-10-29gl_state: Move dirty checks to individual apply calls instead of ApplyReinUsesLisp
This requires removing constness from some methods, but for consistency it's removed in all methods.
2019-10-29gl_state: Remove ApplyDefaultStateReinUsesLisp
OpenGL has defaults values we can trust. Remove these.
2019-10-29gl_state: Change SetDefaultViewports to use default constructorReinUsesLisp
2019-10-29gl_state: Minor style changesReinUsesLisp
2019-10-29gl_state: Remove unused Citra TextureUnitsReinUsesLisp
2019-10-29gl_state: Move initializers from constructor to class declarationReinUsesLisp
2019-10-29shader/node: Unpack bindless texture encodingReinUsesLisp
Bindless textures were using u64 to pack the buffer and offset from where they come from. Drop this in favor of separated entries in the struct. Remove the usage of std::set in favor of std::list (it's not std::vector to avoid reference invalidations) for samplers and images.
2019-10-29Merge pull request #3004 from ReinUsesLisp/maxwell3d-cleanupRodrigo Locatti
maxwell_3d: Remove unused entries
2019-10-28maxwell_3d/kepler_compute: Remove unused arguments in GetTextureReinUsesLisp
2019-10-27Video_Core: Implement texture format E5B9G9R9_SHAREDEXP.Fernando Sahmkow
This commit implements the E5B9G9R9 Texture format into the general system and OpenGL backend.
2019-10-27rasterizer_accelerated: Add intermediary for GPU rasterizersReinUsesLisp
Add an intermediary class that implements common functions across GPU accelerated rasterizers. This avoids code repetition on different backends.
2019-10-25gl_shader_cache: Implement locker variants invalidationReinUsesLisp
2019-10-25gl_shader_disk_cache: Store and load fast BRXReinUsesLisp
2019-10-25gl_shader_decompiler: Move entries to a separate functionReinUsesLisp
2019-10-25Shader_IR: Implement Fast BRX and allow multi-branches in the CFG.Fernando Sahmkow
2019-10-25Shader_Cache: setup connection of ConstBufferLockerFernando Sahmkow
2019-10-25VideoCore: Unify const buffer accessing along engines and provide ↵Fernando Sahmkow
ConstBufferLocker class to shaders.
2019-10-22Merge pull request #2983 from lioncash/fallthroughFernando Sahmkow
gl_shader_decompiler/vk_shader_decompiler: Resolve implicit fallthrough cases
2019-10-17Merge pull request #2966 from FernandoS27/astc-formatsRodrigo Locatti
Implement a series of ASTC formats and R4G4B4A4 format
2019-10-16Merge pull request #2912 from FernandoS27/async-fixesbunnei
General fixes to Async GPU
2019-10-15gl_shader_decompiler: Resolve fallthrough within ExprDecompiler's ↵Lioncash
ExprCondCode operator() This would previously result in NeverExecute and UnusedIndex being treated as regular predicates.
2019-10-15gl_shader_decompiler: Make ExprDecompiler's GetResult() a const member functionLioncash
This is only ever used to read, but not write, the resulting string, so we can enforce this by making it a const member function.
2019-10-15gl_shader_decompiler: Use a std::string_view with GetDeclarationWithSuffix()Lioncash
This allows the function to be completely non-allocating for inputs of all sizes (i.e. there's no heap cost for an input to convert to a std::string_view).
2019-10-15gl_shader_decompiler: Fold flow_var constant into GetFlowVariable()Lioncash
This is only ever used within this function, so we can narrow it's scope down.
2019-10-15gl_shader_decompiler: Mark ASTDecompiler/ExprDecompiler parameters as const ↵Lioncash
references where applicable These member functions don't actually modify the input parameter, so we can make this explicit with the use of const.
2019-10-15gl_shader_decompiler: Pass by reference to GenerateTextureArgument()Lioncash
Avoids an unnecessary atomic reference count increment and decrement.
2019-10-15gl_shader_decompiler: Use std::holds_alternative within GenerateTexture()Lioncash
This only ever queries if the type exists within the variant, but doesn't actually do anything with the return value. We can just use std::holds_alternative for this use case.
2019-10-15gl_shader_decompiler: Avoid unnecessary copies of MetaImageLioncash
MetaImage contains a std::vector, so copying here could result in unnecessary reallocations. Given the operation lives throughout the entire scope, this is safe to do.
2019-10-09Merge pull request #2927 from ReinUsesLisp/polygon-offset-unitsbunnei
gl_rasterizer: Fix polygon offset units
2019-10-09Surfaces: Implement R4G4B4A4U format.Fernando Sahmkow
2019-10-09Surfaces: Implement ASTC 6x6 10x10 12x12 8x6 6x5Fernando Sahmkow
2019-10-06gl_shader_disk_cache: Properly ignore existing cacheReinUsesLisp
Previously old entries where appended to the file even if the shader cache was ignored at boot. Address that issue.
2019-10-04GL_Renderer: Remove lefting snippet.Fernando Sahmkow
2019-10-04Gl_Rasterizer: Protect CPU Memory mapping from multiple threads.Fernando Sahmkow
2019-10-04Nvdrv: Do framelimiting only in the CPU ThreadFernando Sahmkow
2019-10-04Shader_ir: Address feedbackFernando Sahmkow
2019-10-04vk_shader_decompiler: Clean code and be const correct.Fernando Sahmkow
2019-10-04gl_shader_decompiler: Refactor and address feedback.Fernando Sahmkow
2019-10-04Shader_Ir: Refactor Decompilation process and allow multiple decompilation ↵Fernando Sahmkow
modes.
2019-10-04gl_shader_decompiler: Implement AST decompilingFernando Sahmkow
2019-10-01gl_rasterizer: Fix polygon offset unitsReinUsesLisp
For some reason hardware divides polygon offset units by two. This is visible since drivers multiply the application requested polygon offset by two.
2019-09-24gl_shader_decompiler: Add tailing return for HUnpack2ReinUsesLisp
2019-09-24gl_shader_decompiler: Fix clang build issuesReinUsesLisp