summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
AgeCommit message (Collapse)Author
2020-08-27ogl: init ProgramShaderCache::s_ubo_align to 1.Shawn Hoffman
silences a warning that it may cause div-by-zero.
2020-05-25VideoCommon/ShaderGenCommon: Make template functions regular functionsLioncash
These are only ever used with ShaderCode instances and nothing else. Given that, we can convert these helper functions to expect that type of object as an argument and remove the need for templates, improving compiler throughput a marginal amount, as the template instantiation process doesn't need to be performed. We can also move the definitions of these functions into the cpp file, which allows us to remove a few inclusions from the ShaderGenCommon header. This uncovered a few instances of indirect inclusions being relied upon in other source files. One other benefit is this allows changes to be made to the definitions of the functions without needing to recompile all translation units that make use of these functions, making change testing a little quicker. Moving the definitions into the cpp file also allows us to completely hide DefineOutputMember() from external view, given it's only ever used inside of GenerateVSOutputMembers().
2020-01-24Add Dolphin version and current video backend to shader compilation logsRyan Meredith
2019-07-26OGL/ProgramShaderCache: Use std::lock_guard deduction guides where applicableLioncash
Same thing, less reading.
2019-07-26OGL/ProgramShaderCache: Remove unused headersLioncash
Removes a few inclusions that aren't necessary, reducing the number of header dependencies.
2019-07-26OGL/ProgramShaderCache: Use std::string_view where applicableLioncash
2019-07-10VideoCommon/Statistics: Rename stats global to g_statsLioncash
Makes the global variable follow our convention of prefixing g_ on global variables to make it obvious in surrounding code that it's not a local variable.
2019-07-10VideoCommon/Statistics: Normalize statistic variable namesLioncash
Normalizes all variables related to statistics so that they follow our coding style. These are relatively low traffic areas, so this modification isn't too noisy.
2019-05-04Merge pull request #7839 from ShFil119/impr/redundantLéo Lam
Remove redundant initialization
2019-04-30Remove redundant initializationFilip Gawin
2019-04-21OGL: Set shared context state up to match main contextStenzek
Has a better chance of avoiding recompiling if so.
2019-04-21OGL: Fix binding error on shutdownStenzek
This was occurring if the imgui vertex format was bound on shutdown, which is destroyed before the vertex buffers
2019-04-21OGL: Store shader source in OGLShaderStenzek
So it can be dumped with info log when linking fails.
2019-04-21OGL: Remove unused ProgramShaderCache::CompileShader()Stenzek
2019-04-16OGL: Support returning pipeline cache dataStenzek
2019-03-29Merge pull request #7869 from stenzek/d3dcommonConnor McLaughlin
D3D: Move sharable D3D11/D3D12 code to common library
2019-03-29OGL: Support subgroup reduction operations via GL_NV_shader_thread_shuffleStenzek
2019-03-29VertexManagerBase: Increase vertex/uniform buffer sizesStenzek
ZTP was uploading 10MB+ of uniforms per frame, reducing paralellism by forcing GPU waits.
2019-02-19Move most backend functionality to VideoCommonStenzek
2018-12-04Use main buffers for utility drawsStenzek
2018-10-20GLContext: Remove global context pointerStenzek
2018-10-20Refactoring and cleanup of GLInterface (now GLContext)Stenzek
2018-03-16Assert: Remove unused parameter from DEBUG_ASSERTLioncash
This brings the macro in line with the regular ASSERT macro, which only has one macro parameter.
2018-03-14Assert: Uppercase assertion macrosLioncash
Macros should be all upper-cased. This is also kind of a wart that's been sticking out for quite a while now (we avoid prefixing underscores).
2018-03-10OGL: Move primitive restart enable logic to GLUtilStenzek
2018-03-10OGL: Re-implement async shader compilingStenzek
2018-03-10Move shader caches to VideoCommonStenzek
2018-03-10OGL: Fix abstract pipelines on drivers without binding layout supportStenzek
2018-03-10OGL: Make ProgramShaderCache thread safeStenzek
2018-02-25OGL: Only create bad shader files in Dump when compile failedStenzek
Warnings are still logged.
2018-02-22VideoBackends: Add AbstractShader and AbstractPipeline classesStenzek
2018-02-22OGL: Log warnings from shader compiles, even if it compiled successfullyStenzek
2018-02-22OGL: Track state of last bound vertex array objectStenzek
This reduces the overhead of calling glBindVertexArray() every time RestoreAPIState() is called, even when it is redundant.
2018-01-05Standardise some enums from ALL_CAPS to CamelCaseJonathan Hamilton
2018-01-05Workaround qualcomm driver bugJonathan Hamilton
It seems it doesn't like modifying inout variables in place - so instead use a temporary for ocol0/ocol1 and only write them once at the end of the shader
2018-01-05Implement dual-source blending in shaderJonathan Hamilton
For some GLES drivers that don't support dual-source blending, but do support GL_EXT_shader_framebuffer_fetch, this might be useful.
2017-09-11VideoBackends: Move SamplerState to commonStenzek
2017-09-11Renderer: Move cull mode to a rasterization state objectStenzek
Also moves logic for primitive handling to VideoCommon.
2017-09-05VideoBackends: Clear uid bits that are unused for the current backendStenzek
Currently, this is only the logic op bit, but this will be extended to the framebuffer fetch/blend modes. In the future, when/if we move to VideoCommon pipelines, this state will be part of the pipeline UID anyway, and we can mask it out in the backend by using a two-level map, so the shaders/programs are shared.
2017-08-05ProgramShaderCache: Call glTexImage3D after glTexParameterStenzek
Was missed before merge.
2017-08-02ProgramShaderCache: Create a FBO for shared contexts to draw intoStenzek
This way it allows us to use surfaceless contexts in EGL/GLX. It also ensures that the shared context shares a similar setup to the main context's framebuffer, potentially reducing the number of variants a driver needs to generate.
2017-07-31VideoConfig: Drop force vertex/pixel ubershader settingsStenzek
This was mainly included for debugging, but could end up being confusing for users, as well as polluting the GL program cache with a mix of uber and specialized shaders if the option was changed.
2017-07-30Ubershaders: Support per-pixel lightingStenzek
2017-07-30VideoBackends: Support a different number of threads for precompilingStenzek
At runtime, we only really want a single shader compiler thread. However, for initial boots, we can use a higher number to speed things up.
2017-07-30ShaderGen: Use consistent variable names for texture coordinatesStenzek
2017-07-30OGL: Uber shader supportStenzek
2017-07-20ShaderGen: Pass host config to shader generation functionsStenzek
Also moves the host config checks to common.
2017-07-20VideoCommon: Move shader cache filename generation to commonStenzek
2017-07-20OGL: Reload shader cache when relevant video config changesStenzek
2017-06-18Merge pull request #5305 from iwubcode/abstract_textureshuffle2
Abstract Texture