summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_buffer_cache.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_rasterizer: Upload constant buffers with glNamedBufferSubDataReinUsesLisp2019-11-021-2/+18
| | | | | | | | | | | | | | | | 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.
* Buffer Cache: Adress Feedback.Fernando Sahmkow2019-08-211-3/+3
|
* Video_Core: Implement a new Buffer CacheFernando Sahmkow2019-08-211-7/+26
|
* gl_rasterizer: Fix nullptr dereference on disabled buffersReinUsesLisp2019-07-061-2/+2
|
* gl_buffer_cache: Implement with generic buffer cacheReinUsesLisp2019-07-061-101/+14
|
* gl_buffer_cache: Remove global system gettersReinUsesLisp2019-07-061-1/+7
|
* gl_buffer_cache: Implement flushingReinUsesLisp2019-07-061-1/+6
|
* gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheReinUsesLisp2019-07-061-2/+2
|
* gl_buffer_cache: Rework to support internalized buffersReinUsesLisp2019-07-061-18/+52
|
* gl_buffer_cache: Store in CachedBufferEntry the used buffer handleReinUsesLisp2019-07-061-7/+13
|
* gl_buffer_cache: Return used buffer from Upload functionReinUsesLisp2019-07-061-8/+8
|
* gl_buffer_cache: Remove unused ReserveMemory methodReinUsesLisp2019-05-301-3/+0
|
* RasterizerCache Redesign: Flush Fernando Sahmkow2019-04-201-3/+3
| | | | | | flushing is now responsability of children caches instead of the cache object. This change will allow the specific cache to pass extra parameters on flushing and will allow more flexibility.
* gpu: Move GPUVAddr definition to common_types.bunnei2019-03-211-1/+1
|
* gpu: Use host address for caching instead of guest address.bunnei2019-03-151-7/+24
|
* gl_rasterizer: Skip VB upload if the state is clean.Markus Wick2018-11-171-1/+1
|
* 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.
* rasterizer_cache: Refactor to support in-order flushing.bunnei2018-10-161-4/+4
|
* rasterizer_cache: Reintroduce method for flushing.bunnei2018-10-161-0/+3
|
* gl_rasterizer: Implement quads topologyReinUsesLisp2018-10-041-0/+7
|
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-8/+8
|
* gl_buffer_cache: Default initialize member variablesLioncash2018-09-061-3/+3
| | | | Ensures that the cache always has a deterministic initial state.
* 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/+1
|
* gl_buffer_cache: Make constructor explicitLioncash2018-09-061-1/+1
| | | | Implicit conversions during construction isn't desirable here.
* renderer_opengl: Implement a buffer cache.Markus Wick2018-09-051-0/+57
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.