Subv
b0b75e7ae4
GPU: Added boilerplate code for the Fermi2D engine
8 years ago
Subv
94d0d499c3
GPU: Reduce the number of registers of Maxwell3D to 0xE00.
The rest are just macro shim registers.
8 years ago
Subv
219b5d34e7
GPU: Move the Maxwell3D macro uploading code to the inside of the Maxwell3D processor.
It doesn't belong in the PFIFO handler.
8 years ago
Subv
f42b93399f
GPU: Corrected the upper bound of the PFIFO method ids in the command processor.
8 years ago
Lioncash
f5bd2617a8
video-core: Move logging macros over to new fmt-capable ones
8 years ago
Subv
74c89df1c8
Shaders: Added decodings for the FSET instructions.
8 years ago
bunnei
bfb435c994
renderer_opengl: Use correct byte order for framebuffer pixel format ABGR8.
8 years ago
bunnei
1f14d07952
gl_rasterizer_cache: Use CHAR_BIT for bpp conversions instead of 8.
8 years ago
bunnei
931c447c84
gl_rasterizer_cache: Use GPU PAGE_BITS/SIZE, not CPU.
8 years ago
bunnei
4713ba7d9c
gl_rasterizer_cache: Use new logger.
8 years ago
bunnei
197ea35d95
gl_rasterizer_cache: Add a function for finding framebuffer GPU address.
8 years ago
bunnei
640c943d34
gl_rasterizer_cache: Handle compressed texture sizes.
8 years ago
bunnei
31748079de
gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.
8 years ago
bunnei
995cbfc15f
memory_manager: Add implement CpuToGpuAddress.
8 years ago
bunnei
b6bed8fd74
memory_manager: Make GpuToCpuAddress return an optional.
8 years ago
bunnei
ebef12f037
memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.
8 years ago
Lioncash
f6b2c3485b
renderer_opengl: Silence a -Wdangling-else warning in DrawScreenTriangles()
8 years ago
Subv
1eca798d8b
GPU: Added asserts to our code for handling the QUERY_GET GPU command.
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.
8 years ago
Subv
6be45c562f
GPU: Support multiple enabled vertex arrays.
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.
8 years ago
Subv
fbc480d611
GPU: Make the GPU virtual memory manager use 16 page bits and 10 page table bits.
Also removed some dead code and added memory map consistency asserts.
8 years ago
Subv
fa6edc4412
GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format.
8 years ago
Subv
abd66a9a33
GPU: Implement the A2BGR10 texture format.
8 years ago
bunnei
ff1700e261
gl_shader_decompiler: Skip RRO instruction.
8 years ago
bunnei
54fbbc6f26
gl_shader_decompiler: Cleanup error logging.
8 years ago
bunnei
f66098bd37
shader_bytecode: Add several more instruction decodings.
8 years ago
bunnei
d2302ee79f
shader_bytecode: Decode instructions based on bit strings.
8 years ago
Subv
79e7bb8896
ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.
8 years ago
Subv
2fbb91a6b6
ShaderGen: Implemented predicated instruction execution.
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.
8 years ago
Subv
31de416fc0
ShaderGen: Implemented the fsetp instruction.
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.
8 years ago
Lioncash
c3ade6d56d
opengl: Remove unnecessary header inclusions
8 years ago
Lioncash
3768508edf
gl_resource_manager: Add missing noexcept specifiers to move constructors 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.
8 years ago
Lioncash
f7eb0e8f1b
gl_rasterizer_cache: Make MatchFlags an enum class
Prevents implicit conversions and scope pollution.
8 years ago
Subv
601c5d9d93
ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).
8 years ago
Subv
8b8f55d8be
ShaderGen: Ignore the 'sched' instruction when generating shaders.
The 'sched' instruction has a very convoluted encoding, but fortunately it seems to only appear on a fixed interval (once every 4 instructions).
8 years ago
Lioncash
043546e4db
math_util: Remove the Clamp() function
C++17 adds clamp() to the standard library, so we can remove ours in
favor of it.
8 years ago
Lioncash
c9f5ae4fcc
common_funcs: Remove ARRAY_SIZE macro
C++17 has non-member size() which we can just call where necessary.
8 years ago
Lioncash
8594945844
renderer_opengl: Add missing header guards
8 years ago
Lioncash
2259f5d56b
glsl_shader_decompiler: Use std::string_view instead of std::string for 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.
8 years ago
Lioncash
55fef54f2e
glsl_shader_decompiler: Add AddNewLine() function to ShaderWriter
Avoids constructing a std::string just to append a newline character
8 years ago
Lioncash
5a3da4f1a1
glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()
Avoids constructing a std::string just to append a character.
8 years ago
Lioncash
21fa39b4f6
glsl_shader_decompiler: Append indentation without constructing a separate std::string
The interface of std::string already lets us append N copies of a
character to an existing string.
8 years ago
Subv
4ca65f10b1
ShaderGen: Implemented the fmul32i shader instruction.
8 years ago
Subv
887db586be
ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output.
It will now save the coords before writing the outputs in a subscope.
8 years ago
Subv
37f782e1b7
GPU: Add support for the DXT23 and DXT45 compressed texture formats.
8 years ago
Subv
e9f62cb1bb
GPU: Implemented the B5G6R5 format.
8 years ago
bunnei
e8cc5900a6
gl_shader_gen: Support vertical/horizontal viewport flipping. ( #347 )
* gl_shader_gen: Support vertical/horizontal viewport flipping.
* fixup! gl_shader_gen: Support vertical/horizontal viewport flipping.
8 years ago
Subv
d98275cde1
GLCache: Added boilerplate code to make supporting configurable texture component types.
For now only the UNORM type is supported.
8 years ago
Subv
e6991c57e5
GLCache: Unify texture and framebuffer formats when converting to OpenGL.
8 years ago
Subv
d088a95097
GPU: Texture format 8 and framebuffer format 0xD5 are actually ABGR8.
8 years ago
Subv
19a0e7e141
GPU: Pitch textures are now supported, don't assert when encountering them.
8 years ago