N00byKing
1212e9e231
Clean Warnings (?)
8 years ago
Subv
c0f954906c
GPU: Added the TSC registers to the Maxwell3D register structure.
8 years ago
Subv
f6e3d3aa1a
GPU: Added the TIC registers to the Maxwell3D register structure.
8 years ago
Subv
36c527131f
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.
8 years ago
Subv
80b0f4d681
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.
8 years ago
Subv
845415cc3d
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.
8 years ago
Subv
46bbeeb54a
GPU: Move the GPU's class constructor and destructors to a cpp file.
This should reduce recompile times when editing the Maxwell3D register structure.
8 years ago
Subv
a8cb6ba213
GPU: Store uploaded GPU macros and keep track of the number of method parameters.
8 years ago
Subv
29c026fae1
GPU: Macros are specific to the Maxwell3D engine, so handle them internally.
8 years ago
Subv
5979796df8
GPU: Renamed ShaderType to ShaderStage as that is less confusing.
8 years ago
Subv
7b48098c60
GPU: Store shader constbuffer bindings in the GPU state.
8 years ago
Subv
5f181aec24
GPU: Corrected some register offsets and removed superfluous macro registers.
8 years ago
Subv
8a5c0e873b
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[]).
8 years ago
Subv
e3e0625ff7
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.
8 years ago
Subv
c9850b0d3a
GPU: Handle the SetShader method call (0xE24) and store the shader config.
8 years ago
Subv
dbade2db3e
GPU: Added the vertex array registers.
8 years ago
Subv
6796e37911
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?
8 years ago
Subv
3247b8f9dd
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.
8 years ago
Subv
d468c046f9
GPU: Added Maxwell registers for Shader Program control.
8 years ago
Subv
083e494083
GPU: Intercept writes to the VERTEX_END_GL register.
This is the register that gets written after a game calls DrawArrays().
We should collect all GPU state and draw using our graphics API here.
8 years ago
Lioncash
c1583210dd
maxwell_3d: Make constructor explicit
8 years ago
Subv
9cf3a6cc00
GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine.
Only QueryMode::Write is supported at the moment.
8 years ago
Subv
0088b3128b
Make a GPU class in VideoCore to contain the GPU state.
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
8 years ago
Subv
35176a0f73
GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines.
8 years ago
bunnei
1926a0d478
renderer_opengl: Support framebuffer flip vertical.
8 years ago
MerryMage
7a23a53396
memory: Replace all memory hooking with Special regions
8 years ago
James Rowe
ea88c44eb8
Format: Run the new clang format on everything
8 years ago
Lioncash
447c25646e
CMakeLists: Derive the source directory grouping from targets themselves
Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
8 years ago
MerryMage
41bfd994f6
clang-format
8 years ago
bunnei
386ecbd433
renderer_gl: Clear screen to black before rendering framebuffer.
8 years ago
bunnei
f0bccde0a0
renderer: Render previous frame when no new one is available.
8 years ago
MerryMage
d616b36e7b
Fix build on macOS and linux
8 years ago
James Rowe
bd5740a721
Remove gpu debugger and get yuzu qt to compile
8 years ago
James Rowe
a5b9cd4d18
Remove references to PICA and rasterizers in video_core
8 years ago
bunnei
5203bf6799
renderer_opengl: Fix LOG_TRACE in LoadFBToScreenInfo.
8 years ago
bunnei
0ffcc1190e
renderer_opengl: Support rendering Switch framebuffer.
8 years ago
bunnei
14fe63772f
render_base: Add a struct describing framebuffer metadata.
8 years ago
bunnei
7fac24c9e3
renderer_opengl: Add MortonCopyPixels function for Switch framebuffer.
8 years ago
bunnei
46d4d95274
renderer_opengl: Update DrawScreens for Switch.
8 years ago
bunnei
4728cc141a
core/video_core: Fix a bunch of u64 -> u32 warnings.
8 years ago
bunnei
2ea8867549
hle: Initial implementation of NX service framework and IPC.
8 years ago
Huw Pascoe
e38656565d
Extracted the attribute setup and draw commands into their own functions
8 years ago
Huw Pascoe
da1c8d1522
Fixed type conversion ambiguity
8 years ago
Subv
9f1b2d3260
Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
It is unlikely we will ever use this without first doing a Cast to a signed type.
Fixes 9 "unary minus operator applied to unsigned type, result still unsigned" warnings on MSVC2017.3
8 years ago
Huw Pascoe
cb0886468d
Optimized Float<M,E> multiplication
Before:
ucomiss xmm1, xmm1
jp .L9
pxor xmm2, xmm2
mov edx, 1
ucomiss xmm0, xmm2
setp al
cmovne eax, edx
test al, al
jne .L9
.L3:
movaps xmm0, xmm2
ret
.L9:
ucomiss xmm0, xmm0
jp .L10
pxor xmm2, xmm2
mov edx, 1
ucomiss xmm1, xmm2
setp al
cmovne eax, edx
test al, al
je .L3
After:
movaps xmm2, xmm1
mulss xmm2, xmm0
ucomiss xmm2, xmm2
jnp .L3
ucomiss xmm1, xmm0
jnp .L11
.L3:
movaps xmm0, xmm2
ret
.L11:
pxor xmm2, xmm2
jmp .L3
8 years ago
Huw Pascoe
275530d7a9
Optimized Morton
8 years ago
James Rowe
a10022da25
Remove pipeline.gpu_mode and fix minor issues
8 years ago
Huw Pascoe
1089bdda80
Improved performance of FromAttributeBuffer
Ternary operator is optimized by the compiler
whereas std::min() is meant to return a value.
I've noticed a 5%-10% emulation speed increase.
8 years ago
Huw Pascoe
a35ca6c623
Fixed framebuffer warning
8 years ago
James Rowe
08a1641f8a
GPU: Add draw for immediate and batch modes
PR #1461 introduced a regression where some games would change configuration
even while in the poorly named "drawing" mode, which broke the heuristic
citra was using to determine when to draw the batch. This change adds
back in a draw call for batching, and also adds in a draw call in
immediate mode each time it adds a triangle.
8 years ago