aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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.
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).
2018-04-20Merge pull request #367 from lioncash/clampbunnei
math_util: Remove the Clamp() function
2018-04-20math_util: Remove the Clamp() functionLioncash
C++17 adds clamp() to the standard library, so we can remove ours in favor of it.
2018-04-20Merge pull request #363 from lioncash/array-sizebunnei
common_funcs: Remove ARRAY_SIZE macro
2018-04-19common_funcs: Remove ARRAY_SIZE macroLioncash
C++17 has non-member size() which we can just call where necessary.
2018-04-19renderer_opengl: Add missing header guardsLioncash
2018-04-19Merge pull request #356 from lioncash/shaderbunnei
glsl_shader_decompiler: Minor API changes to ShaderWriter
2018-04-19glsl_shader_decompiler: Use std::string_view instead of std::string for ↵Lioncash
AddLine() This function doesn't need to take ownership of the string data being given to it, considering all we do is append the characters to the internal string instance. Instead, use a string view to simply reference the string data without any potential heap allocation. Now anything that is a raw const char* won't need to be converted to a std::string before appending.
2018-04-19glsl_shader_decompiler: Add AddNewLine() function to ShaderWriterLioncash
Avoids constructing a std::string just to append a newline character
2018-04-19glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()Lioncash
Avoids constructing a std::string just to append a character.