summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
AgeCommit message (Collapse)Author
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
2017-06-15Add a namespace to OpenFStreamJosJuice
For consistency with the other functions in FileUtil.h.
2017-06-15Move IOFile to a separate fileJosJuice
Reduces the number of files that need to be recompiled when making changes to FileUtil.h.
2017-06-13Video Backends: Split texture cache code out into separate files, introduce ↵iwubcode
'AbstractTexture'
2017-04-01OGL: Support compute shaders and emitting GLSL 4.3Stenzek
This also changes bSupportsEarlyFragmentTests to bSupportsImageLoadStore, as it is used for both.
2017-03-15VideoConfig: add bSupportsFragmentStoresAndAtomicsMichael Maltese
2017-03-09Unify the way of setting game ID, title ID, revisionJosJuice
The existing code from ConfigManager, ES and MIOS is merged into a new set of functions called SetRunningGameMetadata.
2017-02-19VideoBackends: Add a developer option to disable the shader cache.Jules Blok
Makes it easier to disable the cache while working on the shaders.
2017-02-01ShaderGenCommon: Remove unnecessary includesLioncash
2017-02-01LightingShaderGen: Remove unnecessary includesLioncash
2017-01-04VideoCommon: Make dst_alpha state implicit.degasus
2016-12-06Common: Add alignment headerLéo Lam
Gets rid of duplicated alignment code.
2016-11-27Remove unnecessary ConfigManager includesLéo Lam
Making changes to ConfigManager.h has always been a pain, because it means rebuilding half of Dolphin, since a lot of files depend on and include this header. However, it turns out some includes are unnecessary. This commit removes ConfigManager includes from files which don't contain SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the ConfigManager include is not used). (I've also had to get rid of some indirect includes.)
2016-10-29DiscIO/SConfig: Rename GetUniqueID to GetGameIDJosJuice
We call this "game ID" everywhere else, and it's not actually completely unique.
2016-10-04PixelShaderGen: Drop dstAlphaMode constant in shader generation.degasus
It is already stored within the UID.
2016-10-01ShaderGen: Specify attribute/output locations/bindings explicitlyStenzek
This also shifts the SSBO index from index 3 to index 0.
2016-07-29VideoCommon: Make API_TYPE an enum classLioncash
Allows for forward declarations in most places, which prevents dumping unrelated VideoCommon.h contents directly into headers.
2016-06-26Remove the rest of ShaderDebugging.Scott Mansell
Without UID checking, it's basically a no-op that disables shader cache and stores the shader source code (without ever reading it back).
2016-06-26Multithreadded Shadergen: Minor fixups.Scott Mansell
2016-06-26Remove UID Checker.Scott Mansell
Kind of pointless now that multiple shaders with the same UID are now fundementally impossible.
2016-06-26Multithreadded Shadergen: Second pass over Pixel Shadergen.Scott Mansell
Note: It's not 100% perfect, as some of the GPU capablities leak into the pixel shader UID. Currently our UIDs don't get exported, so there is no issue. But someone might want to fix this in the future.
2016-06-26Multithreadded Shadergen: Second Pass over vertex/lighting ShadergensScott Mansell
As much as possible, the asserts have been moved out of the GetUID function. But there are some places where asserts depend on variables that aren't stored in the shader UID.
2016-06-26Multithreadded Shadergen: Second Pass over geometery ShadergenScott Mansell
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon