summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_buffer_cache.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_rasterizer: Upload constant buffers with glNamedBufferSubDataReinUsesLisp2019-11-021-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.
* gl_buffer_cache: Add missing includeReinUsesLisp2019-08-301-0/+1
| | | | RasterizerInterface was considered an incomplete object by clang.
* Buffer_Cache: Implement flushing.Fernando Sahmkow2019-08-211-0/+4
|
* Video_Core: Implement a new Buffer CacheFernando Sahmkow2019-08-211-19/+28
|
* gl_buffer_cache: Implement with generic buffer cacheReinUsesLisp2019-07-061-162/+27
|
* gl_buffer_cache: Remove global system gettersReinUsesLisp2019-07-061-5/+5
|
* gl_buffer_cache: Implement flushingReinUsesLisp2019-07-061-1/+5
|
* gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheReinUsesLisp2019-07-061-6/+16
|
* gl_buffer_cache: Rework to support internalized buffersReinUsesLisp2019-07-061-46/+121
|
* gl_buffer_cache: Store in CachedBufferEntry the used buffer handleReinUsesLisp2019-07-061-16/+17
|
* gl_buffer_cache: Return used buffer from Upload functionReinUsesLisp2019-07-061-12/+11
|
* rasterizer_cache: Protect inherited caches from submission levelFernando Sahmkow2019-07-011-0/+2
|
* gl_buffer_cache: Remove unused ReserveMemory methodReinUsesLisp2019-05-301-10/+0
|
* video_core/texures/texture: Remove unnecessary includesLioncash2019-04-061-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.
* video_core/renderer_opengl: Remove unnecessary includesLioncash2019-04-041-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.
* video_core: Amend constructor initializer list order where applicableLioncash2019-03-271-2/+2
| | | | | | | Specifies the members in the same order that initialization would take place in. This also silences -Wreorder warnings.
* gpu: Move GPUVAddr definition to common_types.bunnei2019-03-211-2/+2
|
* video_core: Refactor to use MemoryManager interface for all memory access.bunnei2019-03-161-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
* gpu: Use host address for caching instead of guest address.bunnei2019-03-151-9/+15
|
* video_core: Assert on invalid GPU to CPU address queriesReinUsesLisp2019-02-031-1/+2
|
* gl_stream_buffer: Use DSA for buffer managementReinUsesLisp2019-01-061-1/+1
|
* gl_rasterizer: Skip VB upload if the state is clean.Markus Wick2018-11-171-1/+2
|
* rasterizer_cache: Remove reliance on the System singletonLioncash2018-11-081-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.
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-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
* gl_rasterizer: Implement quads topologyReinUsesLisp2018-10-041-3/+14
|
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-7/+8
|
* gl_buffer_cache: Make GetHandle() a const member functionLioncash2018-09-061-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.
* gl_buffer_cache: Remove unnecessary includesLioncash2018-09-061-1/+3
|
* renderer_opengl: Implement a buffer cache.Markus Wick2018-09-051-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.