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.
8 years ago
Subv
f93d769a1c
GPU: Handle the SetShader method call (0xE24) and store the shader config.
8 years ago
Subv
d2888f7e90
GPU: Added the vertex array registers.
8 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?
8 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.
8 years ago
Subv
cbec739e7b
GPU: Added Maxwell registers for Shader Program control.
8 years ago
Subv
5fb4c718cc
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
490d0e36a0
maxwell_3d: Make constructor explicit
8 years ago
Subv
ac61a7d1e6
GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine.
Only QueryMode::Write is supported at the moment.
8 years ago
Subv
6cddf9d88e
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
e01a8f2187
GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines.
8 years ago
bunnei
deadcb39c2
renderer_opengl: Support framebuffer flip vertical.
8 years ago
MerryMage
738f91a57d
memory: Replace all memory hooking with Special regions
8 years ago
James Rowe
096be16636
Format: Run the new clang format on everything
8 years ago
Lioncash
e710a1b989
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
e35644c005
clang-format
8 years ago
bunnei
92801b1c34
renderer_gl: Clear screen to black before rendering framebuffer.
8 years ago
bunnei
ebd613c2cc
renderer: Render previous frame when no new one is available.
8 years ago
MerryMage
e86bdb1601
Fix build on macOS and linux
8 years ago
James Rowe
389979018c
Remove gpu debugger and get yuzu qt to compile
8 years ago
James Rowe
1d28b2e142
Remove references to PICA and rasterizers in video_core
8 years ago
bunnei
11adef4843
renderer_opengl: Fix LOG_TRACE in LoadFBToScreenInfo.
8 years ago
bunnei
ee4691297f
renderer_opengl: Support rendering Switch framebuffer.
8 years ago
bunnei
236d463c52
render_base: Add a struct describing framebuffer metadata.
8 years ago
bunnei
866e66dc31
renderer_opengl: Add MortonCopyPixels function for Switch framebuffer.
8 years ago
bunnei
9e2ad45c98
renderer_opengl: Update DrawScreens for Switch.
8 years ago
bunnei
93480b10ef
core/video_core: Fix a bunch of u64 -> u32 warnings.
8 years ago
bunnei
960a1416de
hle: Initial implementation of NX service framework and IPC.
8 years ago
Huw Pascoe
b3b34a1e76
Extracted the attribute setup and draw commands into their own functions
8 years ago
Huw Pascoe
a13ab958cb
Fixed type conversion ambiguity
8 years ago
Subv
a321bce378
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
903906da3b
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
876aa82c29
Optimized Morton
8 years ago
James Rowe
19d41dcc6e
Remove pipeline.gpu_mode and fix minor issues
8 years ago
Huw Pascoe
a234e4c200
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
6a110ac5f5
Fixed framebuffer warning
8 years ago
James Rowe
ad0b57f407
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
wwylele
12fbc8c8df
pica/lighting: only apply Fresnel factor for the last light
8 years ago
wwylele
e2c41a5891
video_core: report telemetry for gas mode
8 years ago
Subv
da88f3b8f0
Warnings: Fixed a few missing-return warnings in video_core.
8 years ago
wwylele
417cb45e3f
SwRasterizer/Clipper: flip the sign convention to match PICA and OpenGL
8 years ago
wwylele
addbcd5784
gl_rasterizer: implement custom clip plane
8 years ago
wwylele
ea51a3af26
SwRasterizer: implement custom clip plane
8 years ago
wwylele
17c6104d2a
gl_rasterizer/lighting: more accurate CP formula
8 years ago
wwylele
b5aa570354
SwRasterizer/Lighting: implement LUT input CP
9 years ago
wwylele
3e478ca131
SwRasterizer/Lighting: implement bump mapping
9 years ago
wwylele
63b6e802cd
swrasterizer: remove invalid TODO
This function is called in clipping, before the pespective divide, and is not used in later rasterization. Thus it doesn't need perspective correction.
9 years ago
wwylele
72b26ac32f
swrasterizer/clipper: remove tested TODO
hwtested. Current implementation is the correct behavior
9 years ago
wwylele
5a4af616c6
gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader
9 years ago
wwylele
1eca380886
gl_rasterizer: add clipping plane z<=0 defined in PICA
9 years ago