yuzu-fork/src/video_core
ReinUsesLisp 76ca2a5f82
gl_rasterizer: Upload constant buffers with glNamedBufferSubData
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-11-02 05:05:34 -03:00
..
buffer_cache gl_rasterizer: Upload constant buffers with glNamedBufferSubData 2019-11-02 05:05:34 -03:00
debug_utils general: Use deducation guides for std::lock_guard and std::unique_lock 2019-04-01 12:53:47 -04:00
engines Merge pull request #3050 from FernandoS27/fix-tld4 2019-10-30 18:37:17 +00:00
renderer_opengl gl_rasterizer: Upload constant buffers with glNamedBufferSubData 2019-11-02 05:05:34 -03:00
renderer_vulkan Shader_IR: Implement Fast BRX and allow multi-branches in the CFG. 2019-10-25 09:01:30 -04:00
shader Shader_IR: Fix regression on TLD4 2019-10-30 21:14:57 -04:00
texture_cache Merge pull request #2978 from lioncash/doxygen 2019-10-16 22:09:40 -03:00
textures video_core/textures: Remove unused index entry in FullTextureInfo 2019-10-28 00:14:38 -03:00
CMakeLists.txt rasterizer_accelerated: Add intermediary for GPU rasterizers 2019-10-27 03:40:08 -03:00
dma_pusher.cpp GPU: Flush commands on every dma pusher step. 2019-07-26 16:54:22 -04:00
dma_pusher.h gpu: Rewrite virtual memory manager using PageTable. 2019-03-20 22:36:02 -04:00
gpu.cpp Merge pull request #2912 from FernandoS27/async-fixes 2019-10-16 10:34:48 -04:00
gpu.h Core: Wait for GPU to be idle before shutting down. 2019-10-04 19:59:53 -04:00
gpu_asynch.cpp Core: Wait for GPU to be idle before shutting down. 2019-10-04 19:59:53 -04:00
gpu_asynch.h Core: Wait for GPU to be idle before shutting down. 2019-10-04 19:59:53 -04:00
gpu_synch.cpp gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig 2019-08-21 01:55:25 -03:00
gpu_synch.h Core: Wait for GPU to be idle before shutting down. 2019-10-04 19:59:53 -04:00
gpu_thread.cpp AsyncGpu: Address Feedback 2019-10-11 13:41:15 -04:00
gpu_thread.h Core: Wait for GPU to be idle before shutting down. 2019-10-04 19:59:53 -04:00
macro_interpreter.cpp video_core/macro_interpreter: Make definitions of most private enums/unions hidden 2019-10-17 17:55:46 -04:00
macro_interpreter.h video_core/macro_interpreter: Make definitions of most private enums/unions hidden 2019-10-17 17:55:46 -04:00
memory_manager.cpp prefer system reference over global accessor 2019-07-09 08:11:35 -07:00
memory_manager.h prefer system reference over global accessor 2019-07-09 08:11:35 -07:00
morton.cpp Video_Core: Implement texture format E5B9G9R9_SHAREDEXP. 2019-10-27 16:44:09 -04:00
morton.h renderer_opengl: Use block linear swizzling for CPU framebuffers 2019-08-21 02:17:14 -03:00
rasterizer_accelerated.cpp rasterizer_accelerated: Add intermediary for GPU rasterizers 2019-10-27 03:40:08 -03:00
rasterizer_accelerated.h rasterizer_accelerated: Add intermediary for GPU rasterizers 2019-10-27 03:40:08 -03:00
rasterizer_cache.cpp rasterizer_cache: Add missing virtual destructor to RasterizerCacheObject 2018-11-08 00:31:39 -05:00
rasterizer_cache.h rasterizer_cache: Protect inherited caches from submission level 2019-07-01 04:32:01 -04:00
rasterizer_interface.h Maxwell3D: Corrections and refactors to MME instance refactor 2019-09-22 07:23:13 -04:00
renderer_base.cpp video_core/engines: Remove unnecessary includes 2019-03-05 20:35:32 -05:00
renderer_base.h gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig 2019-08-21 01:55:25 -03:00
sampler_cache.cpp video_core: Abstract vk_sampler_cache into a templated class 2019-04-02 15:54:11 -03:00
sampler_cache.h video_core: Abstract vk_sampler_cache into a templated class 2019-04-02 15:54:11 -03:00
surface.cpp Video_Core: Implement texture format E5B9G9R9_SHAREDEXP. 2019-10-27 16:44:09 -04:00
surface.h Video_Core: Implement texture format E5B9G9R9_SHAREDEXP. 2019-10-27 16:44:09 -04:00
video_core.cpp video_core/gpu: Create threads separately from initialization 2019-04-11 22:11:40 -04:00
video_core.h video_core/gpu: Create threads separately from initialization 2019-04-11 22:11:40 -04:00