aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2018-05-19GLRenderer: Log the shader source code when program linking fails.Subv
2018-05-02general: Make formatting of logged hex values more straightforwardLioncash
This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on).
2018-04-29Merge pull request #422 from bunnei/shader-movbunnei
Shader instructions MOV_C, MOV_R, and several minor GPU things
2018-04-29gl_shader_decompiler: Implement MOV_R.bunnei
2018-04-29maxwell_to_gl: Implement type SignedNorm, Size_8_8_8_8.bunnei
2018-04-29Shaders: Implemented predicate condition 3 (LessEqual) in the fset and fsetp ↵Subv
instructions.
2018-04-29gl_shader_decompiler: Implement MOV_C.bunnei
2018-04-28gl_shader_decompiler: Partially implement I2I_R, and I2F_R.bunnei
2018-04-28gl_shader_decompiler: More cleanups, etc. with how we handle register types.bunnei
2018-04-28GLSLRegister: Simplify register declarations, etc.bunnei
2018-04-28gl_shader_decompiler: Implement MOV32_IMM instruction.bunnei
2018-04-27Merge pull request #408 from bunnei/shader-ints-p2bunnei
gl_shader_decompiler: Add GLSLRegisterManager class to track register state.
2018-04-27renderer_opengl: Replace usages of LOG_GENERIC with fmt-capable equivalentsLioncash
2018-04-27gl_shader_decompiler: Add GLSLRegisterManager class to track register state.bunnei
2018-04-27general: Convert assertion macros over to be fmt-compatibleLioncash
2018-04-26gl_shader_decompiler: Boilerplate for handling integer instructions.bunnei
2018-04-26gl_shader_decompiler: Move color output to EXIT instruction.bunnei
2018-04-25Merge pull request #396 from Subv/shader_opsbunnei
Shaders: Implemented the FSET instruction.
2018-04-25Shaders: Implemented the FSET instruction.Subv
This instruction is similar to the FSETP instruction, but it doesn't set a predicate, it sets the destination register to 1.0 if the condition holds, and 0 otherwise.
2018-04-25video-core: Move logging macros over to new fmt-capable onesLioncash
2018-04-24Shaders: Added decodings for the FSET instructions.Subv
2018-04-24renderer_opengl: Use correct byte order for framebuffer pixel format ABGR8.bunnei
2018-04-24gl_rasterizer_cache: Use CHAR_BIT for bpp conversions instead of 8.bunnei
2018-04-24gl_rasterizer_cache: Use GPU PAGE_BITS/SIZE, not CPU.bunnei
2018-04-24gl_rasterizer_cache: Use new logger.bunnei
2018-04-24gl_rasterizer_cache: Add a function for finding framebuffer GPU address.bunnei
2018-04-24gl_rasterizer_cache: Handle compressed texture sizes.bunnei
2018-04-24gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei
2018-04-24memory_manager: Make GpuToCpuAddress return an optional.bunnei
2018-04-24memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.bunnei
2018-04-24renderer_opengl: Silence a -Wdangling-else warning in DrawScreenTriangles()Lioncash
2018-04-24Merge pull request #379 from Subv/multi_buffersbunnei
GPU: Support multiple enabled vertex arrays.
2018-04-23GPU: Support multiple enabled vertex arrays.Subv
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.
2018-04-23GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format ↵Subv
as the A2BGR10 texture format.
2018-04-21GPU: Implement the A2BGR10 texture format.Subv
2018-04-21Merge pull request #376 from bunnei/shader-decoderbunnei
Shader opcode decoding
2018-04-20Merge pull request #375 from lioncash/headerbunnei
opengl: Remove unnecessary header inclusions
2018-04-20gl_shader_decompiler: Skip RRO instruction.bunnei
2018-04-20gl_shader_decompiler: Cleanup error logging.bunnei
2018-04-20shader_bytecode: Decode instructions based on bit strings.bunnei
2018-04-20Merge pull request #369 from Subv/shader_instr2bunnei
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
2018-04-20Merge pull request #374 from lioncash/noexceptbunnei
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
2018-04-20ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.Subv
2018-04-20ShaderGen: Implemented predicated instruction execution.Subv
Each predicated instruction will be wrapped in an `if (predicate) { instruction_body; }` in the GLSL, where `predicate` is one of the predicate boolean variables previously set by fsetp.
2018-04-20ShaderGen: Implemented the fsetp instruction.Subv
Predicate variables are now added to the generated shader code in the form of 'pX' where X is the predicate id. These predicate variables are initialized to false on shader startup and are set via the fsetp instructions. TODO: * Not all the comparison types are implemented. * Only the single-predicate version is implemented.
2018-04-20opengl: Remove unnecessary header inclusionsLioncash
2018-04-20gl_resource_manager: Add missing noexcept specifiers to move constructors ↵Lioncash
and assignment operators Standard library containers may use std::move_if_noexcept to perform move operations. If a move cannot be performed under these circumstances, then a copy is attempted. Given we only intend for these types to be move-only this can be somewhat problematic. By defining these to be noexcept we prevent cases where copies may be attempted.
2018-04-20gl_rasterizer_cache: Make MatchFlags an enum classLioncash
Prevents implicit conversions and scope pollution.
2018-04-20ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).Subv
2018-04-20ShaderGen: Ignore the 'sched' instruction when generating shaders.Subv
The 'sched' instruction has a very convoluted encoding, but fortunately it seems to only appear on a fixed interval (once every 4 instructions).