aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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-25GPU: Partially implemented the Fermi2D surface copy operation.Subv
The hardware allows for some rather complicated operations to be performed on the data during the copy, this is not implemented. Only same-format same-size raw copies are implemented for now.
2018-04-25Shaders: Added bit decodings for the I2I instruction.Subv
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-25GPU: Make the Textures::CopySwizzledData function accessible from the ↵Subv
outside of the file.
2018-04-25GPU: Added a function to retrieve the bytes per pixel of the render target ↵Subv
formats.
2018-04-25GPU: Added surface copy registers to Fermi2DSubv
2018-04-25GPU: Added boilerplate code for the Fermi2D engineSubv
2018-04-25GPU: Reduce the number of registers of Maxwell3D to 0xE00.Subv
The rest are just macro shim registers.
2018-04-25GPU: Move the Maxwell3D macro uploading code to the inside of the Maxwell3D ↵Subv
processor. It doesn't belong in the PFIFO handler.
2018-04-25GPU: Corrected the upper bound of the PFIFO method ids in the command processor.Subv
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: Add implement CpuToGpuAddress.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-24Merge pull request #386 from Subv/gpu_querybunnei
GPU: Added asserts to our code for handling the QUERY_GET GPU command.
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: Added asserts to our code for handling the QUERY_GET GPU command.Subv
This is based on research from nouveau. Many things are currently unknown and will require hwtests in the future. This commit also stubs QueryMode::Write2 to do the same as Write. Nouveau code treats them interchangeably, it is currently unknown what the difference is.
2018-04-23Merge pull request #383 from Subv/gpu_mmubunnei
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
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: Make the GPU virtual memory manager use 16 page bits and 10 page table ↵Subv
bits. Also removed some dead code and added memory map consistency asserts.
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: Add several more instruction decodings.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.