Yuri Kunde Schlesner
630a850d4d
Shaders: Fix multiplications between 0.0 and inf
The PICA200 semantics for multiplication are so that when multiplying
inf by exactly 0.0, the result is 0.0, instead of NaN, as defined by
IEEE. This is relied upon by games.
Fixes #1024 (missing OoT interface items)
11 years ago
Yuri Kunde Schlesner
082b74fa24
Shaders: Explicitly conform to PICA semantics in MAX/MIN
11 years ago
Yuri Kunde Schlesner
76247170df
Shader JIT: Add name to second scratch register (XMM4)
11 years ago
Lioncash
fa5076eb9b
shader_jit: Replace two MDisp usages with MatR
11 years ago
Yuri Kunde Schlesner
455147ee95
Shader JIT: Fix CMP NaN behavior to match hardware
11 years ago
Subv
d1b9383d86
HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint.
11 years ago
aroulin
03c5cfead4
Shader: Use std::sqrt for float instead of sqrt
11 years ago
aroulin
fa552f11ef
Shader: RCP and RSQ computes only the 1st component
11 years ago
aroulin
2f1514b904
Shader: implement DPH/DPHI in JIT
11 years ago
aroulin
2e7cf2f6cf
Shader: implement DPH/DPHI in interpreter
Tests revealed that the component with w=1 is
SRC1 and not SRC2, it is now fixed on 3dbrew.
11 years ago
Subv
0c7da9b815
HWRasterizer: Implemented stencil ops 6 and 7.
11 years ago
Subv
7c1f84a92b
SWRasterizer: Implemented stencil ops 6 and 7.
IncrementWrap and DecrementWrap, verified with hwtests.
11 years ago
Subv
e43eb130d4
HWRasterizer: Implemented stencil op 1 (GL_ZERO)
11 years ago
Subv
fef1462371
SWRasterizer: Implemented stencil action 1 (GL_ZERO).
Verified with hwtests.
11 years ago
Subv
b3e530d005
SWRasterizer: Removed a todo. Verified with hwtests.
11 years ago
Subv
8e6336d96b
SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled.
The HW renderer already did this.
11 years ago
Subv
e74825e3d0
Rasterizer: Abstract duplicated stencil code into a lambda.
11 years ago
Subv
46f660a789
GLRasterizer: Implemented stencil testing in the hw renderer.
11 years ago
Subv
186873420f
GPU/Rasterizer: Corrected the stencil implementation.
Verified the behavior with hardware tests.
11 years ago
aroulin
f3e8f42718
Shader: implement SGE, SGEI and SLT in JIT
11 years ago
aroulin
863730f6a7
Shader: implement SGE, SGEI in interpreter
11 years ago
aroulin
2f9eb98f03
Shader: Save caller-saved registers in JIT before a CALL
11 years ago
aroulin
7d3a6016d6
Shader: implement EX2 and LG2 in JIT
11 years ago
LittleWhite
9d6748fa94
Fix Linux GCC 4.9 build (complaining about undeclared memset)
11 years ago
aroulin
638e47c04d
Shader: implement EX2 and LG2 in interpreter
11 years ago
Tony Wasserka
96820ae42a
Build fix for Debug configurations.
11 years ago
Tony Wasserka
33ba604fd9
Introduce a shader tracer to allow inspection of input/output values for each processed instruction.
11 years ago
Tony Wasserka
2e3601f415
Pica/DebugUtils: Include uniform information into shader dumps.
11 years ago
Tony Wasserka
4cb302c8ae
citra-qt: Improve shader debugger.
Now supports dumping the current shader and recognizes a larger number of output semantics.
11 years ago
Patrick Martin
5b65d95310
videocore: Added RG8 texture support
11 years ago
bunnei
db97090cad
Shader: Use a POD struct for registers.
11 years ago
bunnei
b39c053785
Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.
11 years ago
bunnei
0ee00861f6
Common: Cleanup CPU capability detection code.
11 years ago
bunnei
a1942238f5
Common: Move cpu_detect to x64 directory.
11 years ago
bunnei
bd7e691f78
x64: Refactor to remove fake interfaces and general cleanups.
11 years ago
bunnei
cfb354f11f
JIT: Support negative address offsets.
11 years ago
bunnei
094ae6fadb
Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.
- Config: Add an option for selecting to use shader JIT or interpreter.
- Qt: Add a menu option for enabling/disabling the shader JIT.
11 years ago
bunnei
d67e2f78b7
Common: Added MurmurHash3 hash function for general-purpose use.
11 years ago
bunnei
3f69c2039d
Shader: Define a common interface for running vertex shader programs.
11 years ago
bunnei
18527b9e21
Shader: Move shader code to its own subdirectory, "shader".
11 years ago
bunnei
642b9b5030
GPU: Refactor "VertexShader" namespace to "Shader".
- Also renames "vertex_shader.*" to "shader_interpreter.*"
11 years ago
Emmanuel Gil Peyrot
5115d0177e
ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types.
11 years ago
Yuri Kunde Schlesner
254582aa35
OpenGL: Fix state tracking in situations with reused object handles
If an OpenGL object is created, bound to a binding using the state
tracker, and then destroyed, a newly created object can be assigned the
same numeric handle by OpenGL. However, even though it is a new object,
and thus needs to be bound to the binding again, the state tracker
compared the current and previous handles and concluded that no change
needed to be made, leading to failure to bind objects in certain cases.
This manifested as broken text in VVVVVV, which this commit fixes along
with similar texturing problems in other games.
11 years ago
Yuri Kunde Schlesner
ff68db61bc
OpenGL: Remove redundant texture.enable_2d field from OpenGLState
All uses of this field where it's false can just set the texture id to 0
instead.
11 years ago
Yuri Kunde Schlesner
a96502edd3
Videocore: Implement simple vertex caching
This gives a ~2/3 reduction in the amount of vertices that need to be
processed through the vertex loaders and the vertex shader, yielding a
good speedup.
11 years ago
Yuri Kunde Schlesner
428154da45
OpenGL: Add a profiler category measuring framebuffer readback
11 years ago
Lectem
facb2555a9
citra-qt/debug_utils: Use lock_guard everywhere
unique_lock were being used as lock_guards.
Also replaced manual lock/unlock by lock_guard for harmonization.
11 years ago
Lectem
e663751f8b
citra-qt/command list: Add mask column
11 years ago
Yuri Kunde Schlesner
1762267de4
OpenGL: Make OpenGL object resource wrappers fully inline
The functions are so simple that having them separate only bloats the
code and hinders optimization.
11 years ago
Yuri Kunde Schlesner
e130dac7de
Videocore: Don't reinitialize register name map on every query
This greatly speeds up the command list debug widget.
11 years ago