summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_buffer_cache.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-11-02gl_rasterizer: Upload constant buffers with glNamedBufferSubDataReinUsesLisp1-4/+27
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-08-30gl_buffer_cache: Add missing includeReinUsesLisp1-0/+1
RasterizerInterface was considered an incomplete object by clang.
2019-08-21Buffer_Cache: Implement flushing.Fernando Sahmkow1-0/+4
2019-08-21Video_Core: Implement a new Buffer CacheFernando Sahmkow1-19/+28
2019-07-06gl_buffer_cache: Implement with generic buffer cacheReinUsesLisp1-162/+27
2019-07-06gl_buffer_cache: Remove global system gettersReinUsesLisp1-5/+5
2019-07-06gl_buffer_cache: Implement flushingReinUsesLisp1-1/+5
2019-07-06gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheReinUsesLisp1-6/+16
2019-07-06gl_buffer_cache: Rework to support internalized buffersReinUsesLisp1-46/+121
2019-07-06gl_buffer_cache: Store in CachedBufferEntry the used buffer handleReinUsesLisp1-16/+17
2019-07-06gl_buffer_cache: Return used buffer from Upload functionReinUsesLisp1-12/+11
2019-07-01rasterizer_cache: Protect inherited caches from submission levelFernando Sahmkow1-0/+2
2019-05-30gl_buffer_cache: Remove unused ReserveMemory methodReinUsesLisp1-10/+0
2019-04-06video_core/texures/texture: Remove unnecessary includesLioncash1-0/+1
Nothing in this header relies on common_funcs or the memory manager. This gets rid of reliance on indirect inclusions in the OpenGL caches.
2019-04-04video_core/renderer_opengl: Remove unnecessary includesLioncash1-1/+0
Quite a few unused includes have built up over time, particularly on core/memory.h. Removing these includes means the source files including those files will no longer need to be rebuilt if they're changed, making compilation slightly faster in this scenario.
2019-03-27video_core: Amend constructor initializer list order where applicableLioncash1-2/+2
Specifies the members in the same order that initialization would take place in. This also silences -Wreorder warnings.
2019-03-21gpu: Move GPUVAddr definition to common_types.bunnei1-2/+2
2019-03-16video_core: Refactor to use MemoryManager interface for all memory access.bunnei1-5/+3
# Conflicts: # src/video_core/engines/kepler_memory.cpp # src/video_core/engines/maxwell_3d.cpp # src/video_core/morton.cpp # src/video_core/morton.h # src/video_core/renderer_opengl/gl_global_cache.cpp # src/video_core/renderer_opengl/gl_global_cache.h # src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
2019-03-15gpu: Use host address for caching instead of guest address.bunnei1-9/+15
2019-02-03video_core: Assert on invalid GPU to CPU address queriesReinUsesLisp1-1/+2
2019-01-06gl_stream_buffer: Use DSA for buffer managementReinUsesLisp1-1/+1
2018-11-17gl_rasterizer: Skip VB upload if the state is clean.Markus Wick1-1/+2
2018-11-08rasterizer_cache: Remove reliance on the System singletonLioncash1-1/+3
Rather than have a transparent dependency, we can make it explicit in the interface. This also gets rid of the need to put the core include in a header.
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L1-1/+1
* get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
2018-10-04gl_rasterizer: Implement quads topologyReinUsesLisp1-3/+14
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-7/+8
2018-09-06gl_buffer_cache: Make GetHandle() a const member functionLioncash1-1/+1
GetHandle() internally calls GetHandle() on the stream_buffer instance, which is a const member function, so this can be made const as well.
2018-09-06gl_buffer_cache: Remove unnecessary includesLioncash1-1/+3
2018-09-05renderer_opengl: Implement a buffer cache.Markus Wick1-0/+90
The idea of this cache is to avoid redundant uploads. So we are going to cache the uploaded buffers within the stream_buffer and just reuse the old pointers. The next step is to implement a VBO cache on GPU memory, but for now, I want to check the overhead of the cache management. Fetching the buffer over PCI-E should be quite fast.