Commit Graph

4978 Commits (656de23d93882adc774e24e81a278913f461ad64)

Author SHA1 Message Date
bunnei 656de23d93 renderer: Create rasterizer and cleanup. 7 years ago
bunnei ec5ede68e7
Merge pull request #258 from Subv/gpu_attribs
GPU: Added vertex attrib format and triangle topology registers
7 years ago
N00byKing 34b733e70e CMake: Set EMU_ARCH_BITS in CMakeLists.txt 7 years ago
Subv c450d264eb GPU: Added vertex attribute format registers. 7 years ago
mailwl 6673ed1274 Service/vi: convert services to module 7 years ago
Subv ae28a52277 GPU: Added registers for the number of vertices to render. 7 years ago
bunnei 0b3ab30762
Merge pull request #254 from bunnei/port-citra-renderer
Port Citra OpenGL rasterizer code
7 years ago
mailwl dca7cfb9cf Service: add fatal:u, fatal:p services 7 years ago
bunnei 6e3222363c renderer_gl: Port boilerplate rasterizer code over from Citra. 7 years ago
bunnei 9c468e0c55 gl_shader_util: Sync latest version with Citra. 7 years ago
bunnei d7b1ebe4a8 renderer_gl: Port over gl_shader_gen module from Citra. 7 years ago
Mat M f4700ccabf
Merge pull request #253 from Subv/rt_depth
GPU: Added registers for color and Z buffers.
7 years ago
bunnei 4bdb46e4c2 renderer_gl: Port over gl_shader_decompiler module from Citra. 7 years ago
bunnei a3e10b1a72 renderer_gl: Port over gl_rasterizer_cache module from Citra. 7 years ago
bunnei db0cfb8e8b gl_resource_manager: Sync latest version with Citra. 7 years ago
bunnei 0e4b9cdde4 renderer_gl: Port over gl_stream_buffer module from Citra. 7 years ago
bunnei 6a0902e56d gl_state: Sync latest version with Citra. 7 years ago
Subv 7a27a11770 GPU: Added Z buffer registers to Maxwell3D's reg structure. 7 years ago
Subv 21d9519032 GPU: Added the render target (RT) registers to Maxwell3D's reg structure. 7 years ago
N00byKing 1d8b6ad13b Clang Fixes 7 years ago
N00byKing d16e08454d
oops 7 years ago
N00byKing 0e72d0d826 More Warning cleanups 7 years ago
N00byKing ef875d6a35 Clean Warnings (?) 7 years ago
Subv dcae0c9a4f GPU: Added the TSC registers to the Maxwell3D register structure. 7 years ago
Subv cff7b29bba GPU: Added the TIC registers to the Maxwell3D register structure. 7 years ago
bunnei 23a0d2d7b7
Merge pull request #193 from N00byKing/3184_2_robotic_boogaloo
Implement Pull #3184 from citra: core/arm: Improve timing accuracy before service calls in JIT (Rebased)
7 years ago
bunnei 2dc3a56e96
Merge pull request #250 from bunnei/buffer-dequeue-wait
vi: TransactParcel DequeueBuffer should wait current thread
7 years ago
bunnei c1c92c30f9 vi: Remove DequeueBuffer and wait until next available buffer. 7 years ago
bunnei c86af6939c hle_ipc: Add SleepClientThread to block current thread within HLE routines. 7 years ago
bunnei 2faa83ca13 hle_ipc: Use shared_ptr instead of unique_ptr to allow copies. 7 years ago
bunnei 019f1a0cf0 hle_ipc: Remove GetPointer(..) usage with WriteToOutgoingCommandBuffer. 7 years ago
bunnei e353b9fb3d thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB. 7 years ago
Subv 03156d0c9a GPU: Implement macro 0xE1A BindTextureInfoBuffer in HLE.
This macro simply sets the current CB_ADDRESS to the texture buffer address for the input shader stage.
7 years ago
Subv 7b6868e908 GPU: Implement the BindStorageBuffer macro method in HLE.
This macro binds the SSBO Info Buffer as the current ConstBuffer.
This buffer is usually bound to c0 during shader execution.
Games seem to use this macro instead of directly writing the address for some reason.
7 years ago
Subv 85d820b1b4 GPU: Handle writes to the CB_DATA method.
Writing to this method will cause the written value to be stored in the currently-set ConstBuffer plus CB_POS.

This method is usually used to upload uniforms or other shader-visible data.
7 years ago
Subv a64b936cbe GPU: Move the GPU's class constructor and destructors to a cpp file.
This should reduce recompile times when editing the Maxwell3D register structure.
7 years ago
Subv aa586fa268 GPU: Store uploaded GPU macros and keep track of the number of method parameters. 7 years ago
Subv 7ac8657432 GPU: Macros are specific to the Maxwell3D engine, so handle them internally. 7 years ago
Subv ccb8da1512 GPU: Renamed ShaderType to ShaderStage as that is less confusing. 7 years ago
Subv 88698c156f GPU: Store shader constbuffer bindings in the GPU state. 7 years ago
Subv 66dae22790 GPU: Corrected some register offsets and removed superfluous macro registers. 7 years ago
Subv 1d9d9c16e8 GPU: Make the SetShader macro call do the same as the real macro's code.
It'll now set the CB_SIZE, CB_ADDRESS and CB_BIND registers when it's called.

Presumably this SetShader function is binding the constant shader uniforms to buffer 1 (c1[]).
7 years ago
Subv 579000e747 GPU: Corrected the parameter documentation for the SetShader macro call.
Register 0xE24 is actually a macro that sets some shader parameters in the register structure.

Macros are uploaded to the GPU at startup and have their own ISA, we'll probably write an interpreter for this in the future.
7 years ago
bunnei 516ef4f19f
Merge pull request #242 from Subv/set_shader
GPU: Handle the SetShader method call (0xE24) and store the shader config.
7 years ago
Subv f93d769a1c GPU: Handle the SetShader method call (0xE24) and store the shader config. 7 years ago
Subv d2888f7e90 GPU: Added the vertex array registers. 7 years ago
bunnei cd4e8a989c
Merge pull request #241 from Subv/gpu_method_call
GPU: Process command mode 5 (IncreaseOnce) differently from other commands
7 years ago
Subv 29feece4b8 GPU: Process command mode 5 (IncreaseOnce) differently from other commands.
Accumulate all arguments before calling the desired method.

Note: Maybe we should do the same for the NonIncreasing mode?
7 years ago
bunnei 0eff775264
Merge pull request #239 from Subv/shaders
GPU: Added some shader-related registers.
7 years ago
Subv bf310a41b8 GPU: Assert that we get a 0 CODE_ADDRESS register in the 3D engine.
Shader address calculation depends on this value to some extent, we do not currently know what it being 0 entails.
7 years ago