summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* renderer_opengl: Remove interopReinUsesLisp2021-02-131-7/+0
| | | | Remove unused interop code from the OpenGL backend.
* video_core: Reimplement the buffer cacheReinUsesLisp2021-02-131-51/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Reimplement the buffer cache using cached bindings and page level granularity for modification tracking. This also drops the usage of shared pointers and virtual functions from the cache. - Bindings are cached, allowing to skip work when the game changes few bits between draws. - OpenGL Assembly shaders no longer copy when a region has been modified from the GPU to emulate constant buffers, instead GL_EXT_memory_object is used to alias sub-buffers within the same allocation. - OpenGL Assembly shaders stream constant buffer data using glProgramBufferParametersIuivNV, from NV_parameter_buffer_object. In theory this should save one hash table resolve inside the driver compared to glBufferSubData. - A new OpenGL stream buffer is implemented based on fences for drivers that are not Nvidia's proprietary, due to their low performance on partial glBufferSubData calls synchronized with 3D rendering (that some games use a lot). - Most optimizations are shared between APIs now, allowing Vulkan to cache more bindings than before, skipping unnecesarry work. This commit adds the necessary infrastructure to use Vulkan object from OpenGL. Overall, it improves performance and fixes some bugs present on the old cache. There are still some edge cases hit by some games that harm performance on some vendors, this are planned to be fixed in later commits.
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-33/+30
| | | | | | | | | | | | | | The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues.
* video_core: Resolve more variable shadowing scenarios pt.3Lioncash2020-12-051-4/+4
| | | | | Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors.
* gl_arb_decompiler: Implement robust buffer operationsReinUsesLisp2020-10-201-1/+8
| | | | | | | | | This emulates the behavior we get on GLSL with regular SSBOs with a pointer + length pair. It aims to be consistent with the crashes we might get. Out of bounds stores are ignored. Atomics are ignored and return zero. Reads return zero.
* video_core: Remove all Core::System references in rendererReinUsesLisp2020-09-061-11/+15
| | | | | | | | | Now that the GPU is initialized when video backends are initialized, it's no longer needed to query components once the game is running: it can be done when yuzu is booting. This allows us to pass components between constructors and in the process remove all Core::System references in the video backend.
* gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shadersReinUsesLisp2020-07-181-2/+2
| | | | | | | | | | | | | | | | NV_shader_buffer_{load,store} is a 2010 extension that allows GL applications to use what in Vulkan is known as physical pointers, this is basically C pointers. On GLASM these is exposed through the LOAD/STORE/ATOM instructions. Up until now, assembly shaders were using NV_shader_storage_buffer_object. These work fine, but have a (probably unintended) limitation that forces us to have the limit of a single stage for all shader stages. In contrast, with NV_shader_buffer_{load,store} we can pass GPU addresses to the shader through local parameters (GLASM equivalent uniform constants, or push constants on Vulkan). Local parameters have the advantage of being per stage, allowing us to generate code without worrying about binding overlaps.
* async shadersDavid Marcec2020-07-171-0/+10
|
* Merge pull request #3986 from ReinUsesLisp/shader-cachebunnei2020-06-131-9/+8
|\ | | | | shader_cache: Implement a generic runtime shader cache
| * rasterizer_cache: Remove files and includesReinUsesLisp2020-06-071-1/+0
| | | | | | | | | | The rasterizer cache is no longer used. Each cache has its own generic implementation optimized for the cached data.
| * gl_shader_cache: Use generic shader cacheReinUsesLisp2020-06-071-8/+8
| | | | | | | | Trivially port the generic shader cache to OpenGL.
* | gl_rasterizer: Use NV_transform_feedback for XFB on assembly shadersReinUsesLisp2020-06-041-0/+4
|/ | | | | | | | | | | NV_transform_feedback, NV_transform_feedback2 and ARB_transform_feedback3 with NV_transform_feedback interactions allows implementing transform feedbacks as dynamic state. Maxwell implements transform feedbacks as dynamic state, so using these extensions with TransformFeedbackStreamAttribsNV allows us to properly emulate transform feedbacks without having to recompile shaders when the state changes.
* glsl: Squash constant buffers into a single SSBO when we hit the limitReinUsesLisp2020-06-011-1/+3
| | | | | Avoids compilation errors at the cost of shader build times and runtime performance when a game hits the limit of uniform buffers we can use.
* renderer_opengl: Add assembly program code pathsReinUsesLisp2020-05-191-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add code required to use OpenGL assembly programs based on NV_gpu_program5. Decompilation for ARB programs is intended to be added in a follow up commit. This does **not** include ARB decompilation and it's not in an usable state. The intention behind assembly programs is to reduce shader stutter significantly on drivers supporting NV_gpu_program5 (and other required extensions). Currently only Nvidia's proprietary driver supports these extensions. Add a UI option hidden for now to avoid people enabling this option accidentally. This code path has some limitations that OpenGL compatibility doesn't have: - NV_shader_storage_buffer_object is limited to 16 entries for a single OpenGL context state (I don't know if this is an intended limitation, an specification issue or I am missing something). Currently causes issues on The Legend of Zelda: Link's Awakening. - NV_parameter_buffer_object can't bind buffers using an offset different to zero. The used workaround is to copy to a temporary buffer (this doesn't happen often so it's not an issue). On the other hand, it has the following advantages: - Shaders build a lot faster. - We have control over how floating point rounding is done over individual instructions (SPIR-V on Vulkan can't do this). - Operations on shared memory can be unsigned and signed. - Transform feedbacks are dynamic state (not yet implemented). - Parameter buffers (uniform buffers) are per stage, matching NVN and hardware's behavior. - The API to bind and create assembly programs makes sense, unlike ARB_separate_shader_objects.
* Merge pull request #3808 from ReinUsesLisp/wait-for-idlebunnei2020-05-031-0/+1
|\ | | | | {maxwell_3d,buffer_cache}: Implement memory barriers using 3D registers
| * {maxwell_3d,buffer_cache}: Implement memory barriers using 3D registersReinUsesLisp2020-04-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Drop MemoryBarrier from the buffer cache and use Maxwell3D's register WaitForIdle. To implement this on OpenGL we just call glMemoryBarrier with the necessary bits. Vulkan lacks this synchronization primitive, so we set an event and immediately wait for it. This is not a pretty solution, but it's what Vulkan can do without submitting the current command buffer to the queue (which ends up being more expensive on the CPU).
* | texture_cache: Reintroduce preserve_contents accuratelyReinUsesLisp2020-04-271-1/+2
|/ | | | | | | | | | | | | This reverts commit 94b0e2e5dae4e0bd0021ac2d8fe1ff904a93ee69. preserve_contents proved to be a meaningful optimization. This commit reintroduces it but properly implemented on OpenGL. We have to make sure the clear removes all the previous contents of the image. It's not currently implemented on Vulkan because we can do smart things there that's preferred to be introduced in a separate commit.
* Fix GCC error.Fernando Sahmkow2020-04-221-1/+1
|
* FenceManager: Manage syncpoints and rename fences to semaphores.Fernando Sahmkow2020-04-221-1/+2
|
* ThreadManager: Sync async reads on accurate gpu.Fernando Sahmkow2020-04-221-0/+1
|
* GPU: Implement a Fence Manager.Fernando Sahmkow2020-04-221-0/+2
|
* OpenGL: Implement Fencing backend.Fernando Sahmkow2020-04-221-0/+2
|
* GPU: Refactor synchronization on Async GPUFernando Sahmkow2020-04-221-0/+2
|
* buffer_cache: Return handles instead of pointer to handlesReinUsesLisp2020-04-161-3/+1
| | | | | | | | | | | The original idea of returning pointers is that handles can be moved. The problem is that the implementation didn't take that in mind and made everything harder to work with. This commit drops pointer to handles and returns the handles themselves. While it is still true that handles can be invalidated, this way we get an old handle instead of a dangling pointer. This problem can be solved in the future with sparse buffers.
* gl_rasterizer: Implement line widths and smooth linesReinUsesLisp2020-04-131-0/+3
| | | | | Implements "legacy" features from OpenGL present on hardware such as smooth lines and line width.
* GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddrFernando Sahmkow2020-04-061-3/+3
|
* gl_rasterizer: Implement transform feedback bindingsReinUsesLisp2020-03-131-3/+11
|
* Merge branch 'master' into shader-purgeRodrigo Locatti2020-03-131-0/+3
|\
| * gl_rasterizer: Implement polygon modes and fill rectanglesReinUsesLisp2020-03-101-0/+3
| |
* | gl_shader_cache: Rework shader cache and remove post-specializationsReinUsesLisp2020-03-091-5/+4
|/ | | | | Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it.
* gl_state_tracker: Track state of index buffersReinUsesLisp2020-02-281-1/+1
|
* gl_state_tracker: Implement dirty flags for clip distances and shadersReinUsesLisp2020-02-281-2/+3
|
* renderer_opengl: Reintroduce dirty flags for render targetsReinUsesLisp2020-02-281-1/+5
|
* gl_state: Remove completelyReinUsesLisp2020-02-281-4/+1
|
* gl_state: Remove program trackingReinUsesLisp2020-02-281-3/+2
|
* gl_state: Remove rasterizer disable trackingReinUsesLisp2020-02-281-1/+1
|
* gl_state: Remove viewport and depth range trackingReinUsesLisp2020-02-281-1/+1
|
* gl_state: Remove scissor test trackingReinUsesLisp2020-02-281-1/+1
|
* gl_state: Remove framebuffer sRGB trackingReinUsesLisp2020-02-281-0/+3
|
* gl_state: Remove VAO cache and trackingReinUsesLisp2020-02-281-8/+4
|
* gl_state: Remove depth clamp trackingReinUsesLisp2020-02-281-0/+3
|
* Merge pull request #3414 from ReinUsesLisp/maxwell-3d-drawbunnei2020-02-191-5/+1
|\ | | | | maxwell_3d: Unify draw methods
| * maxwell_3d: Unify draw methodsReinUsesLisp2020-02-141-5/+1
| | | | | | | | | | Pass instanced state of a draw invocation as an argument instead of having two separate virtual methods.
* | gl_query_cache: Optimize query cacheReinUsesLisp2020-02-141-1/+1
| | | | | | | | Use a custom cache instead of relying on a ranged cache.
* | gl_query_cache: Implement host queries using a deferred cacheReinUsesLisp2020-02-141-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of waiting immediately for executed commands, defer the query until the guest CPU reads it. This way we get closer to what the guest program is doing. To archive this we have to build a dependency queue, because host APIs (like OpenGL and Vulkan) use ranged queries instead of counters like NVN. Waiting for queries implicitly uses fences and this requires a command being queued, otherwise the driver will lock waiting until a timeout. To fix this when there are no commands queued, we explicitly call glFlush.
* | gl_rasterizer: Sort method declarationsReinUsesLisp2020-02-141-16/+15
| |
* | gl_rasterizer: Add queued commands counterReinUsesLisp2020-02-141-0/+3
| | | | | | | | | | | | Keep track of the queued OpenGL commands that can signal a fence if waited on. As a side effect, we avoid calls to glFlush when no commands are queued.
* | maxwell_3d: Slow implementation of passed samples (query 21)ReinUsesLisp2020-02-141-0/+5
|/ | | | Implements GL_SAMPLES_PASSED by waiting immediately for queries.
* gl_rasterizer: Fix instanced draw arraysReinUsesLisp2020-01-301-6/+1
| | | | | | glDrawArrays was being used when the draw had a base instance specified. This commit removes the draw parameters abstraction and fixes the mentioned issue.
* gl_rasterizer: Implement RASTERIZE_ENABLEReinUsesLisp2019-12-181-0/+3
| | | | | | | | RASTERIZE_ENABLE is the opposite of GL_RASTERIZER_DISCARD. Implement it naturally using this. NVN games expect rasterize to be enabled by default, reflect that in our initial GPU state.
* gl_rasterizer: Re-enable framebuffer cache for clear buffersReinUsesLisp2019-11-291-2/+0
|
* gl_shader_cache: Remove dynamic BaseBinding specializationReinUsesLisp2019-11-231-5/+4
|
* video_core: Unify ProgramType and ShaderStage into ShaderTypeReinUsesLisp2019-11-231-7/+4
|
* gl_rasterizer: Bind graphics images to draw commandsReinUsesLisp2019-11-231-0/+4
| | | | | Images were not being bound to draw invocations because these would require a cache invalidation.
* shader/texture: Deduce texture buffers from lockerReinUsesLisp2019-11-231-8/+7
| | | | | Instead of specializing shaders to separate texture buffers from 1D textures, use the locker to deduce them while they are being decoded.
* rasterizer_accelerated: Add intermediary for GPU rasterizersReinUsesLisp2019-10-271-9/+2
| | | | | | Add an intermediary class that implements common functions across GPU accelerated rasterizers. This avoids code repetition on different backends.
* Gl_Rasterizer: Protect CPU Memory mapping from multiple threads.Fernando Sahmkow2019-10-051-0/+3
|
* Merge pull request #2870 from FernandoS27/multi-drawDavid2019-09-221-3/+6
|\ | | | | Implement a MME Draw commands Inliner and correct host instance drawing
| * Rasterizer: Refactor and simplify DrawBatch Interface.Fernando Sahmkow2019-09-191-4/+2
| |
| * Rasterizer: Refactor draw calls, remove deadcode and clean up.Fernando Sahmkow2019-09-191-2/+1
| |
| * Video Core: initial Implementation of InstanceDraw PackagingFernando Sahmkow2019-09-191-0/+6
| |
* | gl_rasterizer: Remove unused code paths from ConfigureFramebuffersReinUsesLisp2019-09-171-36/+2
|/
* gl_rasterizer: Add samplers to compute dispatchesReinUsesLisp2019-09-061-0/+3
|
* gl_rasterizer: Minor code changesReinUsesLisp2019-09-061-2/+6
|
* kepler_compute: Implement texture queriesReinUsesLisp2019-09-061-0/+2
|
* gl_rasterizer: Split SetupTexturesReinUsesLisp2019-09-061-2/+8
|
* GPU: Flush commands on every dma pusher step.Fernando Sahmkow2019-07-261-0/+1
| | | | | | This commit ensures that the host gpu is constantly fed with commands to work with, while the guest gpu keeps producing the rest of the commands. This reduces syncing time between host and guest gpu.
* Merge pull request #2734 from ReinUsesLisp/compute-shadersbunnei2019-07-221-2/+13
|\ | | | | gl_rasterizer: Implement compute shaders
| * gl_rasterizer: Implement compute shadersReinUsesLisp2019-07-151-2/+13
| |
* | GL_Rasterizer: Rework RenderTarget/DepthBuffer clearingFernando Sahmkow2019-07-171-0/+5
| |
* | Maxwell3D: Rework the dirty system to be more consistant and scaleableFernando Sahmkow2019-07-171-0/+1
|/
* Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cachebunnei2019-07-151-8/+5
|\ | | | | buffer_cache: Implement a generic buffer cache and its OpenGL backend
| * gl_rasterizer: Minor style changesReinUsesLisp2019-07-061-5/+0
| |
| * gl_rasterizer: Fix vertex and index data invalidationsReinUsesLisp2019-07-061-1/+2
| |
| * gl_buffer_cache: Implement with generic buffer cacheReinUsesLisp2019-07-061-0/+1
| |
| * gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheReinUsesLisp2019-07-061-2/+0
| |
| * gl_buffer_cache: Return used buffer from Upload functionReinUsesLisp2019-07-061-1/+1
| |
| * gl_rasterizer: Move index buffer uploading to its own methodReinUsesLisp2019-07-061-1/+3
| |
* | gl_rasterizer: Amend documentation comment for ConfigureFramebuffers()Lioncash2019-07-091-7/+9
|/ | | | | | | | must_reconfigure isn't a parameter for this function any more, so it can be replaced with current_state. While we're at it, we can make the parameters of the declaration match the same name as the ones in the definition.
* texture_cache: Query MemoryManager from the systemFernando Sahmkow2019-06-251-2/+0
|
* texture_cache: Fermi2D reform and implement View MirageFernando Sahmkow2019-06-211-2/+1
| | | | | This also does some fixes on compressed textures reinterpret and on the Fermi2D engine in general.
* gl_rasterizer: Track texture buffer usageReinUsesLisp2019-06-211-3/+4
|
* gl_framebuffer_cache: Use a hashed struct to cache framebuffersReinUsesLisp2019-06-211-4/+2
|
* Remove Framebuffer reconfiguration and restrict rendertarget protectionFernando Sahmkow2019-06-211-3/+2
|
* texture_cache: Correct premature texceptionsFernando Sahmkow2019-06-211-2/+5
| | | | | | | | | | | | Due to our current infrastructure, it is possible for a mipmap to be set on as a render target before a texception of that mipmap's superset be set afterwards. This is problematic as we rely on texture views to set up texceptions and protecting render targets targets for 3D texture rendering. One simple solution is to configure framebuffers after texture setup but this brings other problems. This solution, forces a reconfiguration of the framebuffers after such event happens.
* Texture Cache: Implement Blitting and Fermi CopiesFernando Sahmkow2019-06-211-1/+0
|
* Change texture_cache chaching from GPUAddr to CacheAddrFernando Sahmkow2019-06-211-2/+0
| | | | | This also reverses the changes to make invalidation and flushing through the GPU address.
* Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddrFernando Sahmkow2019-06-211-0/+8
|
* gl_texture_cache: Implement fermi copiesReinUsesLisp2019-06-211-0/+1
|
* gl_texture_cache: Initial implementationReinUsesLisp2019-06-211-2/+2
|
* gl_rasterizer: Remove unused parameters in descriptor uploadsReinUsesLisp2019-06-081-3/+2
|
* video_core/engines: Move ConstBufferInfo out of Maxwell3DReinUsesLisp2019-06-081-2/+8
|
* gl_rasterizer: Move alpha testing to the OpenGL pipelineReinUsesLisp2019-05-301-2/+2
| | | | Removes the alpha testing code from each fragment shader invocation.
* gl_rasterizer: Use GL_QUADS to emulate quads renderingReinUsesLisp2019-05-301-2/+0
|
* gl_shader_cache: Use shared contexts to build shaders in parallelReinUsesLisp2019-05-211-1/+2
|
* Merge pull request #2383 from ReinUsesLisp/aoffi-testbunnei2019-04-231-2/+2
|\ | | | | gl_shader_decompiler: Disable variable AOFFI on unsupported devices
| * gl_shader_decompiler: Use variable AOFFI on supported hardwareReinUsesLisp2019-04-141-3/+1
| |
| * gl_device: Implement interface and add uniform offset alignmentReinUsesLisp2019-04-101-1/+3
| |
* | Merge pull request #2318 from ReinUsesLisp/sampler-cachebunnei2019-04-181-30/+2
|\ \ | | | | | | gl_sampler_cache: Port sampler cache to OpenGL
| * | gl_sampler_cache: Port sampler cache to OpenGLReinUsesLisp2019-04-021-30/+2
| | |
* | | shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp2019-04-141-4/+0
| |/ |/|
* | gl_rasterizer: Use ARB_multi_bind to update SSBOsReinUsesLisp2019-04-061-0/+1
| |
* | gl_rasterizer: Use ARB_multi_bind to update UBOs across stagesReinUsesLisp2019-04-061-0/+3
| |
* | video_core/renderer_opengl: Remove unnecessary includesLioncash2019-04-041-5/+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.
* gl_rasterizer: Remove unused reference member variable from RasterizerOpenGLLioncash2019-03-271-3/+1
| | | | | This member variable is no longer being used, so it can be removed, removing a dependency on EmuWindow from the rasterizer's interface"
* gpu: Use host address for caching instead of guest address.bunnei2019-03-151-4/+4
|
* Merge pull request #2216 from ReinUsesLisp/rasterizer-systembunnei2019-03-141-0/+1
|\ | | | | gl_rasterizer: Use system instance passed from argument
| * gl_rasterizer: Use system instance passed from argumentReinUsesLisp2019-03-111-0/+1
| |
* | gl_rasterizer: Encapsulate sampler queries into methodsReinUsesLisp2019-03-091-2/+3
|/
* common/math_util: Move contents into the Common namespaceLioncash2019-02-271-2/+2
| | | | | These types are within the common library, so they should be within the Common namespace.
* gl_rasterizer: Implement a more accurate fermi 2D copy.bunnei2019-02-071-1/+3
| | | | - This is a blit, use the blit registers.
* gl_shader_cache: Link loading screen with disk shader cache loadReinUsesLisp2019-02-071-1/+3
|
* gl_shader_disk_cache: Pass core system as argument and guard against games without title idsReinUsesLisp2019-02-071-1/+6
|
* rasterizer_interface: Add disk cache entry for the rasterizerReinUsesLisp2019-02-071-0/+1
|
* Merge pull request #2067 from ReinUsesLisp/workaround-fbbunnei2019-02-011-3/+6
|\ | | | | gl_rasterizer: Workaround invalid zeta clears
| * gl_rasterizer: Workaround invalid zeta clearsReinUsesLisp2019-01-301-3/+6
| | | | | | | | | | | | | | | | | | Some games (like Xenoblade Chronicles 2) clear both depth and stencil buffers while there's a depth-only texture attached (e.g. D16 Unorm). This commit reads the zeta format of the bound surface on ConfigureFramebuffers and returns if depth and/or stencil attachments were set. This is ignored on DrawArrays but on Clear it's used to just clear those attachments, bypassing an OpenGL error.
* | rasterizer_interface: Remove unused AccelerateFill operationReinUsesLisp2019-02-011-1/+0
| |
* | gl_shader_cache: Use explicit bindingsReinUsesLisp2019-01-301-29/+12
| |
* | gl_rasterizer: Implement global memory managementReinUsesLisp2019-01-301-0/+10
|/
* Merge pull request #2008 from ReinUsesLisp/dirty-framebuffersbunnei2019-01-201-0/+18
|\ | | | | gl_rasterizer_cache: Use dirty flags for framebuffers
| * gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changedReinUsesLisp2019-01-071-0/+18
| |
* | Merge pull request #2002 from ReinUsesLisp/dsa-vao-bufferbunnei2019-01-201-2/+4
|\ \ | | | | | | gl_rasterizer: Use DSA for VAOs and buffers
| * | gl_rasterizer: Use DSA for vertex array objectsReinUsesLisp2019-01-061-2/+4
| |/
* / gl_global_cache: Add dummy global cache managerReinUsesLisp2019-01-081-2/+8
|/
* Merge pull request #1824 from ReinUsesLisp/fbcachebunnei2018-12-061-1/+5
|\ | | | | gl_rasterizer: Implement a framebuffer cache
| * gl_rasterizer: Implement a framebuffer cacheReinUsesLisp2018-11-291-1/+5
| |
* | Merge pull request #1827 from ReinUsesLisp/clip-and-shaderbunnei2018-12-021-1/+2
|\ \ | | | | | | gl_rasterizer: Enable clip distances when set in register and in shader
| * | gl_rasterizer: Enable clip distances when set in register and in shaderReinUsesLisp2018-11-291-1/+2
| |/
* | gl_rasterizer: Remove unused struct declarationsReinUsesLisp2018-11-291-14/+0
| |
* | gl_rasterizer: Remove extension booleansReinUsesLisp2018-11-291-3/+0
|/
* Implement depth clampRodolfo Bogado2018-11-271-0/+4
|
* GPU States: Implement Polygon Offset. This is used in SMO all the time. (#1784)Marcos2018-11-271-0/+3
| | | | | | | | * GPU States: Implement Polygon Offset. This is used in SMO all the time. * Clang Format fixes. * Initialize polygon_offset in the constructor.
* Merge pull request #1725 from FernandoS27/gl43bunnei2018-11-241-2/+0
|\ | | | | Update OpenGL's backend version from 3.3 to 4.3
| * Removed pre 4.3 ARB extensionsFernandoS272018-11-211-2/+0
| |
* | Add support for clear_flags registerRodolfo Bogado2018-11-241-14/+15
|/
* fix sampler configuration, thanks to Marcos for his investigationRodolfo Bogado2018-11-171-1/+5
|
* add AlphaToCoverage and AlphaToOneRodolfo Bogado2018-11-171-0/+3
|
* add support for fragment_color_clampRodolfo Bogado2018-11-171-0/+3
|
* Improve state management by splitting some of the states id separated function to avoid a full apply overheadRodolfo Bogado2018-11-111-3/+3
|
* set sampler max lod, min lod, lod bias and max anisotropyRodolfo Bogado2018-11-111-1/+1
|
* Merge pull request #1654 from degasus/dirty_flagsbunnei2018-11-111-1/+2
|\ | | | | gl_rasterizer: Skip VAO binding if the state is clean.
| * gl_rasterizer: Split VAO and VB setup functions.Markus Wick2018-11-061-1/+2
| |
* | Add support to color mask to avoid issues in blending caused by wrong values in the alpha channel in some render targets.Rodolfo Bogado2018-11-051-0/+3
| |
* | Implement multi-target viewports and blendingRodolfo Bogado2018-11-051-4/+1
|/
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-2/+2
| | | | | | | | | | | | | | | | * 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
* Implement Mip FilterFernandoS272018-10-291-0/+1
|
* gl_rasterizer: Implement primitive restart.bunnei2018-10-261-0/+3
|
* gl_rasterizer: Implement depth range.bunnei2018-10-261-5/+2
|
* Assert that multiple render targets are not set while alpha testingFernandoS272018-10-221-0/+3
|
* Use standard UBO and fix/stylize the codeFernandoS272018-10-221-3/+0
|
* Remove SyncAlphaTest and clang formatFernandoS272018-10-221-3/+1
|
* Implemented Alpha TestingFernandoS272018-10-221-0/+2
|
* Merge pull request #1460 from FernandoS27/scissor_testbunnei2018-10-101-0/+3
|\ | | | | Implemented Scissor Testing
| * Assert Scissor testsFernandoS272018-10-091-0/+3
| |
* | gl_shader_decompiler: Implement geometry shadersReinUsesLisp2018-10-071-3/+3
|/
* Merge pull request #1446 from bunnei/fast_fermi_copybunnei2018-10-071-2/+2
|\ | | | | gl_rasterizer: Implement accelerated Fermi2D copies.
| * gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies.bunnei2018-10-061-2/+2
| |
* | Merge pull request #1437 from FernandoS27/tex-mode2bunnei2018-10-071-0/+2
|\ \ | |/ |/| Implemented Depth Compare, Shadow Samplers and Texture Processing Modes for TEXS and TLDS
| * Implemented Depth Compare and Shadow SamplersFernandoS272018-10-061-0/+2
| |
* | gl_rasterizer: Implement quads topologyReinUsesLisp2018-10-041-0/+7
|/
* Merge pull request #1411 from ReinUsesLisp/point-sizebunnei2018-09-291-0/+3
|\ | | | | video_core: Implement point_size and add point state sync
| * video_core: Implement point_size and add point state syncReinUsesLisp2018-09-281-0/+3
| |
* | gl_state: Pack sampler bindings into a single ARB_multi_bindReinUsesLisp2018-09-281-1/+1
|/
* video_core: Add asserts for CS, TFB and alpha testingReinUsesLisp2018-09-261-0/+6
| | | | | | Add asserts for compute shader dispatching, transform feedback being enabled and alpha testing. These have in common that they'll probably break rendering without logging.
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-4/+4
|
* Use ARB_multi_bind for uniform buffers (#1287)ReinUsesLisp2018-09-131-0/+1
| | | | | | * gl_rasterizer: use ARB_multi_bind for uniform buffers * address feedback
* Merge pull request #1286 from bunnei/multi-clearbunnei2018-09-111-2/+11
|\ | | | | gl_rasterizer: Implement clear for non-zero render targets.
| * gl_rasterizer: Implement clear for non-zero render targets.bunnei2018-09-101-2/+11
| | | | | | | | - Several misc. changes to ConfigureFramebuffers in support of this.
* | rasterizer: Drop unused handler.Markus Wick2018-09-101-1/+0
|/ | | | | | | | This virtual function is called in a very hot spot, and it does nothing. If this kind of feature is required, please be more specific and add callbacks in the switch statement within Maxwell3D::WriteReg. There is no point in having another switch statement within the rasterizer.
* gl_rasterizer: Implement multiple color attachments.bunnei2018-09-101-9/+3
|
* gl_rasterizer: Implement texture wrap mode p.bunnei2018-09-081-0/+1
|
* gl_rasterizer: Implement a VAO cache.Markus Wick2018-09-051-3/+5
| | | | | | This patch caches VAO objects instead of re-emiting all pointers per draw call. Configuring this pointers is known as a fast task, but it yields too many GL calls. So for better performance, just bind the VAO instead of 16 pointers.
* renderer_opengl: Implement a buffer cache.Markus Wick2018-09-051-12/+7
| | | | | | | | | 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.
* gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.bunnei2018-08-311-3/+3
|
* gl_rasterizer: Fix issues with the rasterizer cache.bunnei2018-08-311-0/+8
| | | | | - Use a single cached page map. - Fix calculation of ending page.
* renderer_opengl: Implement a new shader cache.bunnei2018-08-281-8/+7
|
* gl_rasterizer: Implement stencil test.bunnei2018-08-231-0/+3
| | | | - Used by Splatoon 2.
* renderer_opengl: Namespace OpenGL codeLioncash2018-08-221-2/+6
| | | | | | | Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
* Merge pull request #1124 from Subv/logic_opsbunnei2018-08-221-0/+3
|\ | | | | GPU: Implemented logic ops.
| * GPU: Implemented the logic op functionality of the GPU.Subv2018-08-211-0/+3
| | | | | | | | This will ASSERT if blending is enabled at the same time as logic ops.
* | Merge pull request #1123 from lioncash/screenbunnei2018-08-211-3/+5
|\ \ | | | | | | rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
| * | rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signatureLioncash2018-08-211-3/+5
| |/ | | | | | | | | | | This is an OpenGL renderer-specific data type. Given that, this type shouldn't be used within the base interface for the rasterizer. Instead, we can pass this information to the rasterizer via reference.
* / Rasterizer: Don't attempt to copy over the old texture's data when doing a format reinterpretation if we're only going to clear the framebuffer.Subv2018-08-201-1/+2
|/
* gl_rasterizer: Use a shared helper to upload from CPU memory.Markus Wick2018-08-121-0/+4
|
* gl_rasterizer: Use the stream buffer for constant buffers.Markus Wick2018-08-121-6/+5
|
* gl_rasterizer: Use the streaming buffer itself for the constant buffer.Markus Wick2018-08-121-2/+1
| | | | Don't emut copies, especially not for data, which is used once. They just end in a huge GPU overhead.
* gl_rasterizer: Use a helper for aligning the buffer.Markus Wick2018-08-121-1/+3
|
* Update the stream_buffer helper from Citra.Markus Wick2018-08-121-2/+1
| | | | Please see https://github.com/citra-emu/citra/pull/3666 for more details.
* core: Namespace EmuWindowLioncash2018-08-121-3/+6
| | | | Gets the class out of the global namespace.
* video_core: Make global EmuWindow instance part of the base renderer classLioncash2018-08-021-1/+4
| | | | | | | | | | | Makes the global a member of the RendererBase class. We also change this to be a reference. Passing any form of null pointer to these functions is incorrect entirely, especially given the code itself assumes that the pointer would always be in a valid state. This also makes it easier to follow the lifecycle of instances being used, as we explicitly interact the renderer with the rasterizer, rather than it just operating on a global pointer.
* gl_rasterizer: Use in-class member initializers where applicableLioncash2018-07-241-5/+5
| | | | We can just assign to the members directly in these cases.
* gl_rasterizer: Implement texture border color.bunnei2018-07-241-4/+1
|
* GPU: Only configure the used framebuffers during clear.Subv2018-07-041-1/+1
| | | | Don't try to configure the color buffer if it is not being cleared, it may not be completely valid at this point.
* GPU: Factor out the framebuffer configuration code for both Clear and Draw commands.Subv2018-07-031-0/+5
|
* GPU: Bind and clear the render target when the CLEAR_BUFFERS register is written to.Subv2018-07-031-0/+1
|
* GPU: Set up the depth test state on every draw.Subv2018-07-021-0/+3
|
* gl_rasterizer_cache: Remove Citra's rasterizer cache, always load/flush surfaces.bunnei2018-06-271-1/+1
|
* gl_rasterizer: Workaround for when exceeding max UBO size.bunnei2018-06-271-1/+1
|
* Rasterizer: Use UBOs instead of SSBOs for uploading const buffers.Subv2018-06-101-0/+5
| | | | This should help a bit with GPU performance once we're GPU-bound.
* GPU: Synchronize the blend state on every draw call.Subv2018-06-091-8/+2
| | | | | | Only independent blending on render target 0 is implemented for now. This fixes the elongated squids in Splatoon 2's boot screen.
* GPU: Implement sampling multiple textures in the generated glsl shaders.Subv2018-06-061-3/+11
| | | | | | All tested games that use a single texture show no regression. Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible.
* GLRenderer: Remove unused hw_vao_enabled_attributes variable.Subv2018-05-191-1/+0
|
* GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB.Subv2018-05-191-5/+2
| | | | The stream buffer is where all the vertex data is copied, some games require this to be much bigger than the 4 MB we used to have.
* gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei2018-04-251-3/+4
|
* GPU: Support multiple enabled vertex arrays.Subv2018-04-231-3/+3
| | | | | | The vertex arrays will be copied to the stream buffer one after the other, and the attributes will be set using the ARB_vertex_attrib_binding extension. yuzu now thus requires OpenGL 4.3 or the ARB_vertex_attrib_binding extension.
* opengl: Remove unnecessary header inclusionsLioncash2018-04-211-5/+0
|
* renderer_opengl: Implement BlendEquation and BlendFunc.bunnei2018-04-181-1/+1
|
* gl_rasterizer: Implement indexed vertex mode.bunnei2018-04-171-1/+0
|
* GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.Subv2018-04-151-3/+2
|
* GPU: Don't use explicit binding points when uploading the constbuffers to opengl.Subv2018-04-151-2/+11
| | | | The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage.
* GPU: Use the buffer hints from the shader decompiler to upload only the necessary const buffers for each shader stage.Subv2018-04-151-1/+2
|
* GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs.Subv2018-04-151-1/+6
| | | | We're going to need the shader generator to give us a mapping of the actual used const buffers to properly bind them to the shader.
* GPU: Allow configuring ssbos in the opengl state manager.Subv2018-04-151-0/+2
|
* shaders: Add NumTextureSamplers const, remove unused #pragma.bunnei2018-04-151-1/+1
|
* gl_rasterizer: Generate shaders and upload uniforms.bunnei2018-04-141-4/+3
|
* gl_rasterizer: Use shader program manager, remove test shader.bunnei2018-04-141-53/+4
|
* renderer_opengl: Use OGLProgram instead of OGLShader.bunnei2018-04-141-1/+1
|
* GL: Set up the textures used for each draw call.Subv2018-04-071-0/+3
| | | | | Each Maxwell shader stage can have an arbitrary number of textures, but we're limited to a certain number in OpenGL. We try to only use the minimum amount of host textures by not keeping a 1:1 relation between guest texture ids and host texture ids, ie, guest texture id 8 can be host texture id 0 if it's the only texture used in the guest shader program. This mapping will have to be passed to the shader decompiler so it can rewrite the texture accesses.
* GL: Ported the SamplerInfo struct from citra.Subv2018-04-071-1/+20
|
* gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function.bunnei2018-03-271-0/+4
|
* gl_rasterizer: Add a SyncViewport method.bunnei2018-03-271-0/+3
|
* rasterizer: Rename DrawTriangles to DrawArrays.bunnei2018-03-271-1/+1
|
* gl_rasterizer: Use 32 texture units instead of 3.bunnei2018-03-271-1/+1
|
* rasterizer: Flush and invalidate regions should be 64-bit.bunnei2018-03-231-3/+3
|
* video_core: Remove usage of PAddr and replace with VAddr.bunnei2018-03-231-4/+4
|
* video_core: Move FramebufferInfo to FramebufferConfig in GPU.bunnei2018-03-231-2/+2
|
* gl_rasterizer: Add a simple passthrough shader in lieu of shader generation.bunnei2018-03-231-2/+12
|
* renderer_gl: Port boilerplate rasterizer code over from Citra.bunnei2018-03-201-0/+162
|
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-316/+0
|
* core/video_core: Fix a bunch of u64 -> u32 warnings.bunnei2018-01-011-2/+2
|
* gl_rasterizer: implement custom clip planewwylele2017-08-251-1/+8
|
* gl_rasterizer: use texture buffer for proctex LUTwwylele2017-07-011-0/+5
|
* gl_rasterizer: use texture buffer for fog LUTwwylele2017-06-221-1/+2
|
* gl_rasterizer/lighting: fix LUT interpolationwwylele2017-06-211-3/+4
|
* gl_rasterizer: sync spot light statuswwylele2017-05-301-1/+5
|
* gl_rasterizer: implement procedural texturewwylele2017-05-201-1/+34
|
* OpenGL: Move PicaShaderConfig to gl_shader_gen.hYuri Kunde Schlesner2017-04-171-199/+2
| | | | Also move the implementation of CurrentConfig to the cpp file.
* VideoCore: Split regs.h inclusionsYuri Kunde Schlesner2017-02-091-1/+4
|
* VideoCore: Move Regs to its own fileYuri Kunde Schlesner2017-02-041-1/+1
|
* VideoCore: Split lighting regs from Regs structYuri Kunde Schlesner2017-02-041-4/+4
|
* VideoCore: Split framebuffer regs from Regs structYuri Kunde Schlesner2017-02-041-4/+4
|
* VideoCore: Split texturing regs from Regs structYuri Kunde Schlesner2017-02-041-12/+13
|
* VideoCore: Split rasterizer regs from Regs structYuri Kunde Schlesner2017-02-041-4/+4
|
* VideoCore: Change misleading register namesYuri Kunde Schlesner2017-01-301-1/+1
| | | | | | A few registers had names such as "count" or "number" when they actually contained the maximum (that is, count - 1). This can easily lead to hard to notice off by one errors.
* video_core: fix gl_rasterizer warning on MSVCKloen2017-01-231-1/+1
|
* Merge pull request #2103 from wwylele/gpu-reg-cleanupbunnei2016-10-041-0/+1
|\ | | | | GPU: DisplayTransfer & MemoryFill cleanup and param check
| * rasterizer: separate TextureCopy from DisplayTransferwwylele2016-09-291-0/+1
| |
* | OpenGL: Take cached viewport sub-rect into account for scissorYuri Kunde Schlesner2016-09-301-3/+0
|/ | | | Fixes #1938
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-4/+0
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-191-6/+3
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-21/+29
|
* OpenGL: Add scaled resolution support to scissorYuri Kunde Schlesner2016-06-281-1/+2
|
* PICA: Scissor fixes and cleanupsYuri Kunde Schlesner2016-06-281-4/+4
|
* PICA: Implement scissor testSubv2016-06-281-1/+11
|
* OpenGL: Implement fogJannik Vogel2016-06-071-2/+15
|
* OpenGL: Avoid undefined behaviour for UNIFORM_BLOCK_DATA_SIZEJannik Vogel2016-06-071-4/+6
|
* Pica: Name LightSrc.config registerJannik Vogel2016-05-231-2/+2
|
* Pica: Name lighting.config0 and .config1 registersJannik Vogel2016-05-231-12/+12
|
* OpenGL: Use uniforms for dist_atten_bias and dist_atten_scaleJannik Vogel2016-05-231-5/+9
|
* OpenGL: Only update depth uniforms if the depth changedJannik Vogel2016-05-141-2/+5
|
* OpenGL: value-initialize variables which cause uninitialised access otherwiseJannik Vogel2016-05-141-2/+2
|
* OpenGL: Implement texture type 3Jannik Vogel2016-05-111-0/+5
|
* Merge pull request #1621 from JayFoxRox/w-bufferbunnei2016-05-111-0/+5
|\ | | | | Implement W-buffer and fix depth-mapping
| * OpenGL: Implement W-Buffers and fix depth-mappingJannik Vogel2016-05-101-0/+5
| |
* | gl_rasterizer: Fix compilation for debug buildsLioncash2016-05-101-1/+1
|/
* Pica: Use a union for PicaShaderConfigJannik Vogel2016-05-031-87/+97
|
* Pica: Add TevStageConfigRaw to PicaShaderConfig (MSVC workaround)Jannik Vogel2016-05-031-1/+22
|
* Pica: Make PicaShaderConfig trivially_copyable and clear it before useJannik Vogel2016-05-031-21/+28
|
* OpenGL: Don't copy const_color (Reverts #1745)Jannik Vogel2016-05-031-2/+3
|
* Merge pull request #1741 from linkmauve/iwyu-video_corebunnei2016-05-011-2/+12
|\ | | | | Fix video_core includes (and dependencies) using include-what-you-use
| * VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-2/+12
| |
* | OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copiedJannik Vogel2016-05-011-30/+11
|/
* HWRasterizer: reorder declarations to match defstfarley2016-04-221-9/+9
|
* HWRasterizer: Texture forwardingtfarley2016-04-211-66/+10
|
* OpenGL: Split buffer-write mask sync into seperate functionsJannik Vogel2016-04-081-0/+9
|
* Add immediate mode vertex submissionDwayne Slater2016-03-031-0/+1
|
* pica: Cleanup lighting register definitions and documentation.bunnei2016-02-051-15/+15
|
* gl_rasterizer: Use alignas(16) instead of explicit padding.bunnei2016-02-051-13/+6
|
* renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types.bunnei2016-02-051-9/+10
|
* gl_rasterizer: Fix issue with interpolation of opposite quaternions.bunnei2016-02-051-1/+7
|
* pica_types: Replace float24/20/16 with a template class.bunnei2016-02-051-2/+2
|
* gl_rasterizer: Remove unnecessary casts.bunnei2016-02-051-6/+6
|
* gl_rasterizer: Fix PicaShaderConfig on GCC.bunnei2016-02-051-29/+27
|
* gl_rasterizer: Initial implementation of bump mapping.bunnei2016-02-051-0/+6
|
* gl_shader_gen: Implement lighting red, green, and blue reflection.bunnei2016-02-051-1/+17
|
* gl_shader_gen: Implement fragment lighting fresnel effect.bunnei2016-02-051-0/+7
|
* gl_shader_gen: Implement fragment lighting specular 1 component.bunnei2016-02-051-0/+8
|
* gl_shader_gen: Add support for D0 LUT scaling.bunnei2016-02-051-1/+3
|
* gl_shader_gen: Refactor lighting config to match Pica register naming.bunnei2016-02-051-28/+32
| | | | - Also implement D0 LUT enable.
* pica: Cleanup and add some comments to lighting registers.bunnei2016-02-051-1/+1
|
* gl_rasterizer: Minor naming refactor on Pica register naming.bunnei2016-02-051-5/+5
|
* renderer_opengl: Use textures for fragment shader LUTs instead of UBOs.bunnei2016-02-051-4/+6
| | | | | - Gets us LUT interpolation for free. - Some older Intel GPU drivers did not support the big UBOs needed to store the LUTs.
* renderer_opengl: Initial implementation of basic specular lighting.bunnei2016-02-051-0/+20
|
* renderer_opengl: Implement HW fragment lighting distance attenuation.bunnei2016-02-051-14/+22
|
* renderer_opengl: Implement HW fragment lighting LUTs within our default UBO.bunnei2016-02-051-2/+7
|
* renderer_opengl: Implement diffuse component of HW fragment lighting.bunnei2016-02-051-3/+58
|
* hwrasterizer: Use proper cached fb addr/sizetfarley2016-02-031-2/+2
|
* hwrasterizer: Use depth offsettfarley2016-01-211-1/+5
|
* VideoCore: Unify interface to OpenGL and SW rasterizersYuri Kunde Schlesner2015-12-081-17/+2
| | | | | | This removes explicit checks sprinkled all over the codebase to instead just have the SW rasterizer expose an implementation with no-ops for most operations.
* VideoCore: Rename HWRasterizer methods to be less confusingYuri Kunde Schlesner2015-12-071-3/+3
|
* Use regular uniform locationPierre de La Morinerie2015-11-251-7/+0
| | | | | | The support for GL_ARB_explicit_uniform_location is not that good (53% according to http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_explicit_uniform_location). This fix the shader compilation on Intel HD 4000 (#1222).
* FragShader: Use an UBO instead of several individual uniformsSubv2015-11-191-6/+21
|
* gl_shader_gen: Various cleanups to shader generation.bunnei2015-10-221-1/+1
|
* gl_rasterizer: Use MMH3 hash for shader cache hey.bunnei2015-10-221-76/+57
| | | | - Includes a check to confirm no hash collisions.
* gl_shader_gen: Require explicit uniform locations.bunnei2015-10-221-26/+14
| | | | - Fixes uniform issue on AMD.
* gl_rasterizer: Add documentation to ShaderCacheKey.bunnei2015-10-221-0/+16
|
* renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups.bunnei2015-10-221-23/+18
|
* gl_rasterizer: Move logic for creating ShaderCacheKey to a static function.bunnei2015-10-221-1/+44
|
* Initial implementation of fragment shader generation with caching.Subv2015-10-221-31/+79
|
* video_core: Reorganize headersLioncash2015-09-111-3/+2
|
* OpenGL: Use Sampler Objects to decouple sampler config from texturesYuri Kunde Schlesner2015-09-031-0/+19
| | | | Fixes #978
* Shader: Move shader code to its own subdirectory, "shader".bunnei2015-08-151-1/+1
|
* GPU: Refactor "VertexShader" namespace to "Shader".bunnei2015-08-151-5/+5
| | | | - Also renames "vertex_shader.*" to "shader_interpreter.*"
* Core: Cleanup hw includes.Emmanuel Gil Peyrot2015-06-281-0/+1
|
* Common: Cleanup key_map includes.Emmanuel Gil Peyrot2015-06-281-0/+4
|
* Pica: Implement LogicOp function.bunnei2015-05-311-0/+3
|
* OpenGL renderertfarley2015-05-231-0/+207