Lioncash
b7551e457b
video-core: Move logging macros over to new fmt-capable ones
8 years ago
bunnei
c30cd898fc
renderer_opengl: Use correct byte order for framebuffer pixel format ABGR8.
8 years ago
bunnei
f1a4a004fb
gl_rasterizer_cache: Use CHAR_BIT for bpp conversions instead of 8.
8 years ago
bunnei
0a023cfb4f
gl_rasterizer_cache: Use GPU PAGE_BITS/SIZE, not CPU.
8 years ago
bunnei
9022d926eb
gl_rasterizer_cache: Use new logger.
8 years ago
bunnei
fbb3cd110c
gl_rasterizer_cache: Add a function for finding framebuffer GPU address.
8 years ago
bunnei
bc0f1896fc
gl_rasterizer_cache: Handle compressed texture sizes.
8 years ago
bunnei
4415e00181
gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.
8 years ago
bunnei
10c6d89119
memory_manager: Add implement CpuToGpuAddress.
8 years ago
bunnei
239ac8abe2
memory_manager: Make GpuToCpuAddress return an optional.
8 years ago
bunnei
9e11a76e92
memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.
8 years ago
bunnei
e8c2bb24b2
Merge pull request #386 from Subv/gpu_query
...
GPU: Added asserts to our code for handling the QUERY_GET GPU command.
8 years ago
Lioncash
d1b23b2b51
renderer_opengl: Silence a -Wdangling-else warning in DrawScreenTriangles()
8 years ago
bunnei
07dc0bbf3e
Merge pull request #379 from Subv/multi_buffers
...
GPU: Support multiple enabled vertex arrays.
8 years ago
Subv
f208953585
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
bunnei
3967f9c6ef
Merge pull request #383 from Subv/gpu_mmu
...
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
8 years ago
Subv
9531a29283
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
f823c1d599
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
010227e149
GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format.
8 years ago
Subv
c079cf4eec
GPU: Implement the A2BGR10 texture format.
8 years ago
bunnei
f8764bb5d3
Merge pull request #376 from bunnei/shader-decoder
...
Shader opcode decoding
8 years ago
bunnei
f8a037ead4
Merge pull request #375 from lioncash/header
...
opengl: Remove unnecessary header inclusions
8 years ago
bunnei
d08fd7e86d
gl_shader_decompiler: Skip RRO instruction.
8 years ago
bunnei
8b28dc55e6
gl_shader_decompiler: Cleanup error logging.
8 years ago
bunnei
e1630c4d43
shader_bytecode: Add several more instruction decodings.
8 years ago
bunnei
9f6d305eab
shader_bytecode: Decode instructions based on bit strings.
8 years ago
bunnei
8ac3a3f45e
Merge pull request #369 from Subv/shader_instr2
...
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
8 years ago
bunnei
634d9ee18b
Merge pull request #374 from lioncash/noexcept
...
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
8 years ago
Subv
17a0ef1e1e
ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.
8 years ago
Subv
c3a8ea76f1
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
0a5e01b710
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
eafdcc1b8a
opengl: Remove unnecessary header inclusions
8 years ago
Lioncash
ab71997b2c
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
7db0b8d74f
gl_rasterizer_cache: Make MatchFlags an enum class
...
Prevents implicit conversions and scope pollution.
8 years ago
Subv
d03fc77475
ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).
8 years ago
Subv
2e0a9f66a0
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
bunnei
326b044c19
Merge pull request #367 from lioncash/clamp
...
math_util: Remove the Clamp() function
8 years ago
Lioncash
fae2dd0344
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
bunnei
701dd649e6
Merge pull request #363 from lioncash/array-size
...
common_funcs: Remove ARRAY_SIZE macro
8 years ago
Lioncash
d9e316e353
common_funcs: Remove ARRAY_SIZE macro
...
C++17 has non-member size() which we can just call where necessary.
8 years ago
Lioncash
3841ec4200
renderer_opengl: Add missing header guards
8 years ago
bunnei
17ad56c1dc
Merge pull request #356 from lioncash/shader
...
glsl_shader_decompiler: Minor API changes to ShaderWriter
8 years ago
Lioncash
e3b6f6c016
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
412b31ad72
glsl_shader_decompiler: Add AddNewLine() function to ShaderWriter
...
Avoids constructing a std::string just to append a newline character
8 years ago
Lioncash
aa26baa3db
glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()
...
Avoids constructing a std::string just to append a character.
8 years ago
Lioncash
4ef392906b
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
fe84842137
ShaderGen: Implemented the fmul32i shader instruction.
8 years ago
Subv
5367935d35
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
057170928c
GPU: Add support for the DXT23 and DXT45 compressed texture formats.
8 years ago
bunnei
60e6e8953e
Merge pull request #351 from Subv/tex_formats
...
GPU: Implemented the B5G6R5 format.
8 years ago