Commit Graph

426 Commits (ae437320c84e8c5fff69e8cec413e63b11f952b6)

Author SHA1 Message Date
Markus Wick c560043581 rasterizer: Drop unused handler.
This virtual function is called in a very hot spot, and it does nothing.

If this kind of feature is required, please be more specific and add callbacks
in the switch statement within Maxwell3D::WriteReg. There is no point in having
another switch statement within the rasterizer.
7 years ago
bunnei 49b15af054 gl_rasterizer: Implement multiple color attachments. 7 years ago
bunnei e58855c7a4
Merge pull request #1268 from FernandoS27/tmml
shader_decompiler: Implemented TMML
7 years ago
FernandoS27 00131e752d Implemented TMML 7 years ago
bunnei 223ddb2008
Merge pull request #1272 from Subv/dma_2d
GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
7 years ago
FernandoS27 073a21ac0b Implemented TXQ dimension query type, used by SMO. 7 years ago
FernandoS27 82a313a14c Change name of TEXQ to TXQ, in order to match NVIDIA's naming 7 years ago
Subv fdb199290b GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
When not set, this tells the GPU to only use the X size when performing a DMA copy.
This is only implemented for linear->linear and tiled->tiled copies. Conversion copies still retain the assert.

This bit is unset by some games for various purposes, and by nouveau when copying the vertex buffers.
7 years ago
bunnei fdd5c97a14 maxwell_3d: Remove assert that no longer applies. 7 years ago
bunnei 77554ac773
Merge pull request #1243 from degasus/VAO_cache
gl_rasterizer: Implement a VAO cache.
7 years ago
FernandoS27 e63b229f4a Implemented IPA Properly 7 years ago
Markus Wick d3ad9469a1 gl_rasterizer: Implement a VAO cache.
This patch caches VAO objects instead of re-emiting all pointers per draw call.
Configuring this pointers is known as a fast task, but it yields too many GL
calls. So for better performance, just bind the VAO instead of 16 pointers.
7 years ago
bunnei 325f3e0693
Merge pull request #1213 from DarkLordZach/octopath-fs
filesystem/maxwell_3d: Various changes to boot Project Octopath Traveller
7 years ago
bunnei 89be49d2f3
Merge pull request #1215 from ogniK5377/texs-nodep-assert
Added assert for TEXS nodep
7 years ago
bunnei 177c45e97d
Merge pull request #1214 from ogniK5377/ipa-assert
Added better asserts to IPA, Renamed IPA modes to match mesa
7 years ago
bunnei 9c206fe94d
Merge pull request #1216 from ogniK5377/ffma-assert
Added FFMA asserts and missing fields
7 years ago
David Marcec 60754b4728 Removed saturate assert
Unneeded as we already implement it
7 years ago
David Marcec 2edab4e840 Removed saturate assert
Saturate already implemented
7 years ago
David Marcec 6f8ed9508d Added FMUL asserts 7 years ago
David Marcec b89fc407d7 Added FFMA asserts 7 years ago
David Marcec 948bc87a59 Added assert for TEXS nodep 7 years ago
David Marcec ad3dca7e62 Added better asserts to IPA, Renamed IPA modes to match mesa
IpaMode is changed to IpaInterpMode
IpaMode is suppose to be 2 bits not 3
Added IpaSampleMode
Added Saturate

Renamed modes based on
d27c791891/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp (L2530)
7 years ago
Zach Hilman f32e28c7b8 maxwell_3d: Use CoreTiming for query timestamp 7 years ago
Lioncash 4a587b81b2 core/core: Replace includes with forward declarations where applicable
The follow-up to e2457418da, which
replaces most of the includes in the core header with forward declarations.

This makes it so that if any of the headers the core header was
previously including change, then no one will need to rebuild the bulk
of the core, due to core.h being quite a prevalent inclusion.

This should make turnaround for changes much faster for developers.
7 years ago
Hexagon12 d626bc8c62 Added predicate comparison GreaterEqualWithNan 7 years ago
Laku 915ab81ec2 gl_shader_decompiler: Implement POPC (#1203)
* Implement POPC

* implement invert
7 years ago
bunnei d6accf96ff
Merge pull request #1200 from bunnei/improve-ipa
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
7 years ago
tech4me a6dd577d02 Shaders: Implemented IADD3 7 years ago
bunnei b1ccd88434 gl_shader_decompiler: Improve IPA for Pass mode with Position attribute. 7 years ago
bunnei 2f5ed3877c
Merge pull request #1169 from Lakumakkara/sel
shader_bytecode: fix SEL_IMM bitstring
7 years ago
bunnei be2f1eabd7
Merge pull request #1173 from lioncash/batch
maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()
7 years ago
Lioncash 20800f2df7 maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()
The start and finish events should likely not be right after one another
like this, otherwise the batch will appear to complete immediately
7 years ago
Laku 36093a3e4d fix SEL_IMM bitstring 7 years ago
tech4me ba2972bc64 Shaders: Added decodings for IADD3 instructions 7 years ago
bunnei 2a472ff54d maxwell_3d: Update to include additional stencil registers. 7 years ago
Laku 8e8326595f implement lop3 7 years ago
bunnei 125d7122ac
Merge pull request #1124 from Subv/logic_ops
GPU: Implemented logic ops.
7 years ago
Lioncash a0e2bd85a5 shader_bytecode: Parenthesize conditional expression within GetTextureType()
Resolves a -Wlogical-op-parentheses warning.
7 years ago
bunnei 2ae88feea7 shader_bytecode: Replace some UNIMPLEMENTED logs. 7 years ago
Subv 6bcdf37d4f GPU: Added registers for the logicop functionality. 7 years ago
bunnei 028d90eb79
Merge pull request #1104 from Subv/instanced_arrays
GLRasterizer: Implemented instanced vertex arrays.
7 years ago
bunnei b20ed93884
Merge pull request #1112 from Subv/sampler_types
Shaders: Use the correct shader type when sampling textures.
7 years ago
bunnei 51ddb130c5
Merge pull request #1089 from Subv/neg_bits
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
7 years ago
Subv f7edbcd7a3 Shaders/TEXS: Fixed the component mask in the TEXS instruction.
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
7 years ago
Subv 73b937b190 Shader: Added bitfields for the texture type of the various sampling instructions. 7 years ago
Subv 656758fd81 Shaders: Added decodings for TLD4 and TLD4S 7 years ago
bunnei 29d4f8c2dd
Merge pull request #1109 from Subv/ldg_decode
Shaders: Added decodings for  the LDG and STG instructions.
7 years ago
bunnei 9baf5de90c
Merge pull request #1108 from Subv/front_facing
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
7 years ago
Subv 1b92ae136f Shaders: Added decodings for the LDG and STG instructions. 7 years ago
Subv 731701a2d2 Shaders: Implemented the gl_FrontFacing input attribute (attr 63). 7 years ago
Subv e0f66c1fbf GLRasterizer: Implemented instanced vertex arrays.
Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions.
7 years ago
Subv 8335b2f115 Shader: Implemented the predicate and mode arguments of LOP.
The mode can be used to set the predicate to true depending on the result of the logic operation. In some cases, this means discarding the result (writing it to register 0xFF (Zero)).

This is used by Super Mario Odyssey.
7 years ago
Subv 2e95ba2e9c Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
We should definitely audit our shader generator for more errors like this.
7 years ago
David Marcec 63dff47e22 Added predcondition GreaterThanWithNan 7 years ago
Subv c5284efd4f Rasterizer: Implemented instanced rendering.
We keep track of the current instance and update an uniform in the shaders to let them know which instance they are.

Instanced vertex arrays are not yet implemented.
7 years ago
bunnei 534abf9d97 gl_shader_decompiler: Implement XMAD instruction. 7 years ago
bunnei f2c7b5dcd6
Merge pull request #1024 from Subv/blend_gl
GPU/Maxwell3D: Implemented an alternative set of blend factors.
7 years ago
Subv 969326bd58 GPU/Maxwell3D: Implemented an alternative set of blend factors.
These are used by nouveau and some games like SMO.
7 years ago
Subv 2dad1204e8 RasterizerGL: Ignore invalid/unset vertex attributes.
This should make the es2gears example not crash anymore.
7 years ago
bunnei 403dfd68fc
Merge pull request #1010 from bunnei/unk-vert-attrib-shader
gl_shader_decompiler: Improve handling of unknown input/output attributes.
7 years ago
bunnei 0b668d5ff3 gl_shader_decompiler: Improve handling of unknown input/output attributes. 7 years ago
bunnei 670a2c1f80
Merge pull request #1018 from Subv/ssy_sync
GPU/Shader: Implemented SSY and SYNC as a set_target/jump pair.
7 years ago
Subv c1ad973881 GPU/Shader: Don't predicate instructions that don't have a predicate field (SSY). 7 years ago
Lioncash b8c43b6080 video_core: Use variable template variants of type_traits interfaces where applicable 7 years ago
bunnei efe6b473c5 maxwell_3d: Ignore macros that have not been uploaded yet.
- Used by Super Mario Odyssey (in game).
7 years ago
bunnei 25ba4d1b68
Merge pull request #982 from bunnei/stub-unk-63
gl_shader_decompiler: Stub input attribute Unknown_63.
7 years ago
bunnei cf917a5e93
Merge pull request #976 from bunnei/shader-imm
gl_shader_decompiler: Let OpenGL interpret floats.
7 years ago
bunnei 7f0d0a93f7 gl_shader_decompiler: Stub input attribute Unknown_63. 7 years ago
bunnei 57982df105 maxwell_3d: Use correct const buffer size and check bounds.
- Fixes mem corruption with Super Mario Odyssey and Pokkén Tournament DX.
7 years ago
bunnei e542356d0c gl_shader_decompiler: Let OpenGL interpret floats.
- Accuracy is lost in translation to string, e.g. with NaN.
- Needed for Super Mario Odyssey.
7 years ago
bunnei 904d7eaa94 maxwell_3d: Remove outdated assert. 7 years ago
Lioncash 6030c5ce41 video_core: Eliminate the g_renderer global variable
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.

For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
7 years ago
Subv 8f2c4191ab GPU: Remove the assert that required the CODE_ADDRESS to be 0.
Games usually just leave it at 0 but nouveau sets it to something else. This already works fine, the assert is useless.
7 years ago
bunnei 148a5bef7e shader_bytecode: Implement other TEXS masks. 7 years ago
bunnei c43eaa94f3 gl_shader_decompiler: Implement SEL instruction. 7 years ago
bunnei 5287991a36 maxwell_3d: Add depth buffer enable, width, and height registers. 7 years ago
Lioncash bb960c8cb4 video_core: Use nested namespaces where applicable
Compresses a few namespace specifiers to be more compact.
7 years ago
Lioncash 8b08f82dc7 maxwell_3d: Remove unused variable within GetStageTextures() 7 years ago
Subv 3d3b10adc7 GPU: Added register definitions for the stencil parameters. 7 years ago
bunnei 8aeff9cf8e gl_rasterizer: Fix check for if a shader stage is enabled. 7 years ago
bunnei 64b5e5d5d9
Merge pull request #655 from bunnei/pred-lt-nan
gl_shader_decompiler: Implement PredCondition::LessThanWithNan.
7 years ago
bunnei 49c0c081c4 gl_shader_decompiler: Implement PredCondition::LessThanWithNan. 7 years ago
bunnei 4757ffdcce gl_shader_decompiler: Use FlowCondition field in EXIT instruction. 7 years ago
Sebastian Valle 274d1fb0fc
Merge pull request #652 from Subv/fadd32i
GPU: Implement the FADD32I shader instruction.
7 years ago
bunnei 3ff21345b4
Merge pull request #651 from Subv/ffma_decode
GPU: Corrected the decoding of FFMA for immediate operands.
7 years ago
Subv c1ae841f47 GPU: Implement the FADD32I shader instruction. 7 years ago
Subv 0cad310e12 GPU: Corrected the decoding of FFMA for immediate operands. 7 years ago
bunnei 639346bcfb
Merge pull request #625 from Subv/imnmx
GPU: Implemented the IMNMX shader instruction.
7 years ago
bunnei 51bd76a5fd
Merge pull request #629 from Subv/depth_test
GPU: Allow using the old NV04 values for the depth test function.
7 years ago
Subv 9f6a5660e8 GPU: Allow using the old NV04 values for the depth test function.
These seem to be just a valid as the GL token values. Thanks @ReinUsesLisp

This restores graphical output to Disgaea 5
7 years ago
bunnei 762bf6a522
Merge pull request #626 from Subv/shader_sync
GPU: Stub the shader SYNC and DEPBAR instructions.
7 years ago
bunnei 8b815877a6
Merge pull request #622 from Subv/unused_tex
GPU: Ignore unused textures and corrected the TEX shader instruction decoding.
7 years ago
bunnei 1b0a74e23f
Merge pull request #621 from Subv/psetp_
GPU: Implemented the PSETP shader instruction.
7 years ago
Subv b0c92b80b1 GPU: Implemented the IMNMX shader instruction.
It's similar to the FMNMX instruction but it works on integers.
7 years ago
Subv 77cfe4f027 GPU: Stub the shader SYNC and DEPBAR instructions.
It is unknown at this moment if we actually need to do something with these instructions or if the GLSL compiler takes care of that for us.
7 years ago
Subv c42b818cf9 GPU: Corrected the decoding for the TEX shader instruction. 7 years ago
Subv 53a55bd751 GPU: Implemented the PSETP shader instruction.
It's similar to the isetp and fsetp instructions but it works on predicates instead.
7 years ago
Subv c1bebdef5e GPU: Flip the triangle front face winding if the GPU is configured to not flip the triangles.
OpenGL's default behavior is already correct when the GPU is configured to flip the triangles.

This fixes 1-2 Switch's splash screen.
7 years ago
bunnei c996787d84
Merge pull request #609 from Subv/clear_buffers
GPU: Implemented the CLEAR_BUFFERS register.
7 years ago
Subv c1811ed3d1 GPU: Support clears that don't clear the color buffer. 7 years ago
Subv be51120d23 GPU: Bind and clear the render target when the CLEAR_BUFFERS register is written to. 7 years ago
Subv 827bb08c91 GPU: Added registers for the CLEAR_BUFFERS and CLEAR_COLOR methods. 7 years ago
bunnei 15e68cdbaa
Merge pull request #607 from jroweboy/logging
Logging - Customizable backends
7 years ago
bunnei ddb767f1b6
Merge pull request #611 from Subv/enabled_depth_test
GPU: Don't try to parse the depth test function if the depth test is disabled and use only the least significant 3 bits in the depth test func
7 years ago
bunnei 5410b4659d
Merge pull request #610 from Subv/mufu_8
GPU: Implemented MUFU suboperation 8, sqrt.
7 years ago
Subv 6e0eba9917 GPU: Use only the least significant 3 bits when reading the depth test func.
Some games set the full GL define value here (including nouveau), but others just seem to set those last 3 bits.
7 years ago
James Rowe 0d46f0df12 Update clang format 7 years ago
James Rowe 638956aa81 Rename logging macro back to LOG_* 7 years ago
bunnei 92c7135065
Merge pull request #608 from Subv/depth
GPU: Implemented the depth buffer and depth test + culling
7 years ago
Subv 6e4e0b2b41 GPU: Implemented MUFU suboperation 8, sqrt. 7 years ago
Sebastian Valle 055f1546d7
Merge pull request #606 from Subv/base_vertex
GPU: Fixed the index offset and implement BaseVertex when doing indexed rendering.
7 years ago
Sebastian Valle 9685dd5840
Merge pull request #605 from Subv/dma_copy
GPU: Directly copy the pixels when performing a same-layout DMA.
7 years ago
Subv c1f55c32c8 GPU: Added registers for depth test and cull mode. 7 years ago
Subv 0f929762b3 GPU: Implemented the Z24S8 depth format and load the depth framebuffer. 7 years ago
Subv cc73bad293 GPU: Added register definitions for the vertex buffer base element. 7 years ago
Subv ca633a5a3c GPU: Directly copy the pixels when performing a same-layout DMA. 7 years ago
bunnei 066d6184d4
Merge pull request #602 from Subv/mufu_subop
GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation.
7 years ago
Subv f33e406ff2 GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation. 7 years ago
bunnei c96da97630 gl_shader_decompiler: Implement predicate NotEqualWithNan. 7 years ago
bunnei 6a28a66832 maxwell_3d: Add a struct for RenderTargetConfig. 7 years ago
Subv a3d82ef5d9 Build: Fixed some MSVC warnings in various parts of the code. 7 years ago
Subv eab7457c00 GPU: Don't mark uniform buffers and registers as used for instructions which don't have them.
Like the MOV32I and FMUL32I instructions.
This fixes a potential crash when using these instructions.
7 years ago
bunnei afdd657d30 gl_shader_decompiler: Implement LOP instructions. 7 years ago
bunnei 5673ce39c7 gl_shader_decompiler: Refactor LOP32I instruction a bit in support of LOP. 7 years ago
bunnei d383043e07 gl_shader_decompiler: Implement integer size conversions for I2I/I2F/F2I. 7 years ago
bunnei 019d7208c8
Merge pull request #556 from Subv/dma_engine
GPU: Partially implemented the Maxwell DMA engine.
7 years ago
bunnei 2015a1b180
Merge pull request #558 from Subv/iadd32i
GPU: Implemented the iadd32i shader instruction.
7 years ago
Subv db0497b808 GPU: Implemented the iadd32i shader instruction. 7 years ago
Subv 987a170665 GPU: Partially implemented the Maxwell DMA engine.
Only tiled->linear and linear->tiled copies that aren't offsetted are supported for now. Queries are not supported. Swizzled copies are not supported.
7 years ago
bunnei 5f3d6c85db gl_shader_decompiler: Implement saturate for float instructions. 7 years ago
Subv b366b885a1 GPU: Implement the iset family of shader instructions. 7 years ago
Subv 3cb753eeb1 GPU: Added decodings for the ISET family of instructions. 7 years ago
bunnei d81aaa3ed3
Merge pull request #550 from Subv/ssy
GPU: Stub the SSY shader instruction.
7 years ago
bunnei e2176dc7ce
Merge pull request #551 from bunnei/shr
gl_shader_decompiler: Implement SHR instruction.
7 years ago
bunnei 5440b9c634 gl_shader_decompiler: Implement SHR instruction. 7 years ago
Subv abec5f82e2 GPU: Stub the SSY shader instruction.
This instruction tells the GPU where the flow reconverges in a non-uniform control flow scenario, we can ignore this when generating GLSL code.
7 years ago
bunnei bbc4f369ed gl_shader_decompiler: Implement IADD instruction. 7 years ago
bunnei 79e9c2e237 gl_shader_decompiler: Add missing asserts for saturate_a instructions. 7 years ago
Subv c712dafaee GPU: Added registers for normal and independent blending. 7 years ago
bunnei 92209f905f gl_shader_decompiler: Implement BFE_IMM instruction. 7 years ago
bunnei 128aeba0f3 gl_shader_decompiler: F2F: Implement rounding modes. 7 years ago
bunnei 4b114e1b8a shader_bytecode: Add instruction decodings for BFE, IMNMX, and XMAD. 7 years ago
bunnei 0ff2929644
Merge pull request #534 from Subv/multitexturing
GPU: Implement sampling multiple textures in the generated glsl shaders.
7 years ago
bunnei 4669f15f8b gl_shader_decompiler: Implement LD_C instruction. 7 years ago
bunnei 6e386a334b gl_shader_decompiler: Refactor uniform handling to allow different decodings. 7 years ago
Subv dbfc39d214 GPU: Implement sampling multiple textures in the generated glsl shaders.
All tested games that use a single texture show no regression.

Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible.
7 years ago
bunnei 5fb99e6a16
Merge pull request #516 from Subv/f2i_r
GPU: Implemented the F2I_R shader instruction.
7 years ago
bunnei 38eb33f150
Merge pull request #521 from Subv/bra
GPU: Corrected the branch targets for the shader bra instruction.
7 years ago
Subv e7dfcdde74 GPU: Corrected the branch targets for the shader bra instruction. 7 years ago
Subv 4b89348c00 GPU: Implemented the F2I_R shader instruction. 7 years ago
bunnei c23c30c76f gl_shader_decompiler: Implement SHL instruction. 7 years ago
Subv 23b1e6eded GPU: Implement the ISCADD shader instructions. 7 years ago
Subv 438a9b70cc GPU: Added decodings for the ISCADD instructions. 7 years ago
bunnei e8bfff7b4b
Merge pull request #514 from Subv/lop32i
GPU: Implemented the LOP32I instruction.
7 years ago
bunnei f564822e78
Merge pull request #510 from Subv/isetp
GPU: Implemented the ISETP_R and ISETP_C instructions
7 years ago
bunnei 37fd4e6d9b
Merge pull request #512 from Subv/fset
GPU: Corrected the FSET and I2F instructions.
7 years ago
bunnei cdd92dc692
Merge pull request #501 from Subv/shader_bra
GPU: Partially implemented the bra shader instruction
7 years ago
Subv 2933521a08 GPU: Use the bf bit in FSET to determine whether to write 0xFFFFFFFF or 1.0f. 7 years ago
Subv 5d55403f94 GPU: Calculate the correct viewport dimensions based on the scale and translate registers.
This is how nouveau calculates the viewport width and height. For some reason some games set 0xFFFF in the VIEWPORT_HORIZ and VIEWPORT_VERT registers, maybe those are a misnomer and actually refer to something else?
7 years ago
Subv 0c688b421c GPU: Implemented the LOP32I instruction. 7 years ago
Subv 7c181fd4f4 GPU: Implemented the ISETP_R and ISETP_C shader instructions. 7 years ago
Subv b481d8a00d GPU: Partially implemented the shader BRA instruction. 7 years ago
Subv 06c72b4fcf GPU: Added decoding for the BRA instruction. 7 years ago
bunnei ba117854f9
Merge pull request #500 from Subv/long_queries
GPU: Partial implementation of long GPU queries.
7 years ago
Subv d57333406d GPU: Partial implementation of long GPU queries.
Long queries write a 128-bit result value to memory, which consists of a 64 bit query value and a 64 bit timestamp.

In this implementation, only select=Zero of the Crop unit is implemented, this writes the query sequence as a 64 bit value, and a 0u64 value for the timestamp, since we emulate an infinitely fast GPU.

This specific type was hwtested, but more rigorous tests should be performed in the future for the other types.
7 years ago
bunnei 1efcba346a gl_shader_decompiler: Implement TEXS component mask. 7 years ago
bunnei bb9d39b8fe
Merge pull request #494 from bunnei/shader-tex
gl_shader_decompiler: Implement TEX, fixes for TEXS.
7 years ago
bunnei e54ea773fc gl_shader_decompiler: Implement RRO as a register move. 7 years ago
bunnei 888eb345c0 gl_shader_decompiler: Implement TEX instruction. 7 years ago
bunnei 4c727d0ba8 gl_shader_decompiler: Support multi-destination for TEXS. 7 years ago
bunnei 15086a22be
Merge pull request #489 from Subv/vertexid
Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.
7 years ago
Subv 99f12b05fa Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader. 7 years ago
bunnei 68937a662d gl_shader_decompiler: Partially implement F2F_R instruction. 7 years ago
bunnei ee53688ca7 shader_bytecode: Implement other variants of FMNMX. 7 years ago
bunnei 898f0fa029
Merge pull request #458 from Subv/fmnmx
Shaders: Implemented the FMNMX shader instruction.
7 years ago
Subv 8440cef223 Shaders: Implemented the FMNMX shader instruction. 7 years ago
Subv a056d5ad8c ShadersDecompiler: Added decoding for the PSETP instruction. 7 years ago
bunnei f41eb95e13 maxwell_3d: Reset vertex counts after drawing. 7 years ago
bunnei c7ce472eeb shader_bytecode: Add decoding for FMNMX instruction. 7 years ago
bunnei 6c464a2a4a
Merge pull request #416 from bunnei/shader-ints-p3
gl_shader_decompiler: Implement MOV32I, partially implement I2I, I2F
7 years ago
bunnei f87ea8fa8b fermi_2d: Fix surface copy block height. 7 years ago
bunnei 0c01c34eff gl_shader_decompiler: Partially implement I2I_R, and I2F_R. 7 years ago
bunnei f2dcb39049 shader_bytecode: Add decodings for i2i instructions. 7 years ago
bunnei a7b5ab4d9a gl_shader_decompiler: Implement MOV32_IMM instruction. 7 years ago
Lioncash 8475496630
general: Convert assertion macros over to be fmt-compatible 7 years ago
bunnei c9d7abe9c9 gl_shader_decompiler: Boilerplate for handling integer instructions. 7 years ago
bunnei f81b915fd8
Merge pull request #396 from Subv/shader_ops
Shaders: Implemented the FSET instruction.
7 years ago
Subv 20d86d8a36 GPU: Partially implemented the Fermi2D surface copy operation.
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.
7 years ago
Subv e9ad8e9185 Shaders: Added bit decodings for the I2I instruction. 7 years ago
Subv 378c881427 GPU: Added surface copy registers to Fermi2D 7 years ago
Subv b1109931b9 GPU: Added boilerplate code for the Fermi2D engine 7 years ago
Subv c16cfbbc6c GPU: Reduce the number of registers of Maxwell3D to 0xE00.
The rest are just macro shim registers.
7 years ago
Subv a994446b6e GPU: Move the Maxwell3D macro uploading code to the inside of the Maxwell3D processor.
It doesn't belong in the PFIFO handler.
7 years ago
Lioncash b7551e457b
video-core: Move logging macros over to new fmt-capable ones 7 years ago
Subv 0369ee7248 Shaders: Added decodings for the FSET instructions. 7 years ago
bunnei 239ac8abe2 memory_manager: Make GpuToCpuAddress return an optional. 7 years ago
bunnei 9e11a76e92 memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses. 7 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.
7 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.
7 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.
7 years ago