Yuri Kunde Schlesner
bc3f57efd0
Shader Disassembly: Implement support for MAD/MADI
2015-09-07 16:46:26 -03:00
Yuri Kunde Schlesner
86d5461bcd
Shader Disassembly: Introduce variables to hold common subexpressions
2015-09-07 16:46:25 -03:00
Yuri Kunde Schlesner
ecbad494d9
Shader Debugger: Initialize input_vertex to prevent crashes
...
If the first type of breakpoint to be hit wasn't "Vertex Loaded", the
input_vertex would contain garbage, which would be passed to the shader
interpreter and ocasionally cause crashes.
2015-09-07 16:46:25 -03:00
Yuri Kunde Schlesner
9431ee330a
Shader Disassembly: Cleanup code and improve output alignment
2015-09-07 16:46:23 -03:00
Kloen
a962c30df1
citra-qt: Use monospace font on Disassembler and ARM Registers
2015-09-07 21:02:45 +02:00
LittleWhite
86e29ac281
Stop emulation when render window is closed
2015-09-07 20:34:39 +02:00
aroulin
1484a23530
Shader JIT: Use SCALE constant from emitter
2015-09-07 16:50:28 +02:00
aroulin
87e3b9ffc0
Shader: Fix size_t to int casts of register offsets
2015-09-07 16:50:28 +02:00
Lioncash
a813f78551
Merge pull request #1114 from archshift/conditioncode_al
...
DynCom: Converted all magic 0xE condition code checks to ConditionCode::AL
2015-09-06 01:29:28 -04:00
archshift
9e8383e296
DynCom: Converted all 0xE condition code checks to ConditionCode::AL
2015-09-05 22:24:42 -07:00
Yuri Kunde Schlesner
b044c047c4
OpenGL: Use Sampler Objects to decouple sampler config from textures
...
Fixes #978
2015-09-03 15:09:51 -03:00
Yuri Kunde Schlesner
466e608c19
OpenGL: Remove ugly and endian-unsafe color pointer casts
2015-09-03 15:09:51 -03:00
Yuri Kunde Schlesner
ec28f037e6
OpenGL: Add support for Sampler Objects to state tracker
2015-09-03 15:09:50 -03:00
Yuri Kunde Schlesner
cd817be922
citra-qt: Move system shutdown to run inside EmuThread
...
This stops (for some reason sporadic) crashes and OpenGL errors during
shutdown, when the OpenGL renderer tries to clean up objects from the
UI thread, which has no OpenGL context active.
2015-09-03 15:09:50 -03:00
Yuri Kunde Schlesner
cc19a76656
Merge pull request #1087 from yuriks/opengl-glad
...
Replace the previous OpenGL loader with a glad-generated 3.3 one
2015-09-03 15:07:01 -03:00
bunnei
bc59aaccb1
Merge pull request #1101 from archshift/camu-service-names
...
Add cam:u service function names to its function table
2015-09-03 07:53:18 -04:00
archshift
e0c10019a9
Add cam:u service function names to its function table
2015-09-03 01:56:59 -07:00
bunnei
918ca40c68
Merge pull request #1088 from aroulin/x64-emitter-abi-call
...
x64: Proper stack alignment in shader JIT function calls
2015-09-02 08:46:58 -04:00
aroulin
ba998b85a1
video_core: Fix format specifiers warnings
2015-09-02 08:20:00 +02:00
aroulin
179ad35c2e
x64: Proper stack alignment in shader JIT function calls
...
Import Dolphin stack handling and register saving routines
Also removes the x86 parts from abi files
2015-09-01 23:39:52 +02:00
aroulin
0b6c0afeb7
Common: Import BitSet from Dolphin
2015-09-01 23:39:52 +02:00
bunnei
5e3536f66f
Merge pull request #1072 from yuriks/GetSystemTick-advance-time
...
SVC: Advance time when calling GetSystemTick to escape busy-wait loops
2015-09-01 08:21:29 -04:00
bunnei
f05ae742a4
Merge pull request #1083 from yuriks/microprofile-vs2015
...
Common: Fix MicroProfile compilation in MSVC2015
2015-08-31 21:20:36 -04:00
Tony Wasserka
071510b367
Merge pull request #1092 from Subv/vertex_offset
...
Pica: Add the vertex_offset register to the Pica registers map.
2015-08-31 18:17:59 +02:00
Subv
58a04c0776
Pica: Added the primitive_restart register (0x25f) to the registers map.
2015-08-31 09:14:18 -05:00
Subv
149ea561a6
Pica: Add the vertex_offset register to the Pica registers map.
2015-08-31 07:02:30 -05:00
aroulin
84959be150
Shader JIT: Fix SGE/SGEI NaN behavior
...
SGE was incorrectly emulated w.r.t. NaN behavior as the CMPSS SSE
instruction was used with NLT
2015-08-31 08:16:15 +02:00
bunnei
e77dc4e9d2
Merge pull request #1059 from Subv/vertex_offset
...
GPU: Implemented register 0x22A PICA_REG_DRAW_VERTEX_OFFSET
2015-08-30 17:12:33 -04:00
Subv
12a11472f1
GPU: Implemented register 0x22A.
...
This is the equivalent of the "first" parameter in glDrawArrays, it tells the GPU the vertex index at which to start rendering.
Register 0x22A doesn't affect indexed rendering.
2015-08-30 15:46:22 -05:00
bunnei
5906d8b01c
Merge pull request #1085 from Subv/fs_stat
...
Services/FS: Correctly tell the guest app whether a file was correctly opened or not
2015-08-30 11:44:39 -04:00
Yuri Kunde Schlesner
68eb197494
Increase required OpenGL version to 3.3
...
This gives us several niceties such as Sampler Objects, shader attribute
locations and Timer Queries.
2015-08-30 08:45:57 -03:00
Yuri Kunde Schlesner
a1a5570e97
Replace the previous OpenGL loader with a glad-generated 3.3 one
...
The main advantage of switching to glad from glLoadGen is that, apart
from being actively maintained, it supports a customizable entrypoint
loader function, which makes it possible to also support OpenGL ES.
2015-08-30 08:45:56 -03:00
Yuri Kunde Schlesner
18c1c39d5e
SVC: Advance time when calling GetSystemTick to escape busy-wait loops
...
Cubic Ninja waited for the frame to end by spinning on a loop calling
GetSystemTick while doing nothing else. Since GetSystemTick doesn't
cause a reschedule (which advances time), this meant that very little
emulated time would pass inside that loop, causing the game to spend
most of the frame burning away CPU.
2015-08-30 00:07:02 -03:00
bunnei
58e9f78844
Merge pull request #1049 from Subv/stencil
...
Rasterizer: Corrected the stencil implementation.
2015-08-29 20:06:25 -04:00
Subv
ce6a65cec9
Services/FS: Correctly tell the guest app whether a file was correctly opened or not.
...
Closes #1067
2015-08-28 22:01:03 -05:00
Yuri Kunde Schlesner
656d824b20
Common: Fix MicroProfile compilation in MSVC2015
2015-08-28 06:12:12 -03:00
Yuri Kunde Schlesner
0ee3e2c25e
Kernel: Fix wrong linear heap base on titles using newer kernels
...
Typo which sneaked in through review on #1025
2015-08-27 23:52:40 -03:00
bunnei
2978b5fbc8
Merge pull request #1075 from yuriks/ControlMem-fixes
...
Fix heap-management regressions
2015-08-27 19:43:55 -04:00
Yuri Kunde Schlesner
c5a4025b65
Merge pull request #1065 from yuriks/shader-fp
...
Shader FP compliance fixes
2015-08-27 16:34:13 -07:00
bunnei
f3cef178e3
gl_rasterizer_cache: Detect and ignore unnecessary texture flushes.
2015-08-27 19:07:53 -04:00
aroulin
f52d8c1a9b
Shader JIT: Fix float to integer rounding in MOVA
...
MOVA converts new address register values from floats to integers using truncation
2015-08-27 15:26:41 +02:00
Yuri Kunde Schlesner
12390eb155
Kernel: Fix assertion failure when ControlMemory is called with size=0
2015-08-26 21:29:05 -03:00
Yuri Kunde Schlesner
687d973980
Core: Improve APT Shared Font hack
...
Should fix invalid read loops in some games
2015-08-26 21:28:58 -03:00
bunnei
32e279c0ca
Merge pull request #1074 from lioncash/bool
...
dyncom: Minor changes to CondPassed
2015-08-26 18:44:52 -04:00
archshift
dd0e1061ef
Shader JIT: ifdef out reference to ifdef'd out shader_map
...
shader_map was only defined on x86 architectures, but was cleared on shutdown
with no ifdef protection. Ifdef this out so non-x86 architectures can be built.
2015-08-26 22:28:19 +00:00
Lioncash
dc1b024b80
dyncom: Simplify some comparisons in CondPassed
2015-08-26 00:10:23 -04:00
Lioncash
01dd833ffa
dyncom: Change return type of CondPassed to bool
2015-08-25 23:59:01 -04:00
Lioncash
e7ebb9d36c
citra-qt: Add a missing header guard to util.h
2015-08-25 23:07:33 -04:00
Yuri Kunde Schlesner
0fcabd2b11
Integrate the MicroProfile profiling library
...
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
2015-08-24 22:16:28 -03:00
Yuri Kunde Schlesner
c7745408f7
citra-qt: Add helper function to get a monospace QFont
2015-08-24 22:16:28 -03:00
bunnei
afd45d1d7f
Merge pull request #1063 from Subv/hw_renderer_debug_fb
...
HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint
2015-08-24 13:02:44 -04:00
Subv
583d777b1a
HWRenderer: Added a workaround for the Intel Windows driver bug that causes glTexSubImage2D to not change the stencil buffer.
...
Reported here https://communities.intel.com/message/324464
2015-08-24 11:28:28 -05:00
Yuri Kunde Schlesner
eff10959de
fixup! Shaders: Fix multiplications between 0.0 and inf
2015-08-24 02:10:11 -03:00
Yuri Kunde Schlesner
d8ef20c856
Shader JIT: Tiny micro-optimization in DPH
2015-08-24 01:48:37 -03:00
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)
2015-08-24 01:48:15 -03:00
Yuri Kunde Schlesner
082b74fa24
Shaders: Explicitly conform to PICA semantics in MAX/MIN
2015-08-24 01:46:58 -03:00
Yuri Kunde Schlesner
76247170df
Shader JIT: Add name to second scratch register (XMM4)
2015-08-24 01:46:10 -03:00
Lioncash
fa5076eb9b
shader_jit: Replace two MDisp usages with MatR
2015-08-24 00:39:50 -04:00
Yuri Kunde Schlesner
455147ee95
Shader JIT: Fix CMP NaN behavior to match hardware
2015-08-24 01:29:40 -03:00
bunnei
83c214f6d8
Merge pull request #1062 from aroulin/shader-rcp-rsq
...
Shader: RCP and RSQ computes only the 1st component
2015-08-23 17:56:35 -04:00
bunnei
387bd3a1e4
Merge pull request #1057 from aroulin/shader-dph-dphi
...
Shader: Implement DPH and DPHI in interpreter/JIT
2015-08-23 17:47:09 -04:00
Subv
d1b9383d86
HWRenderer: Only reload the framebuffer from gpu memory if the hw renderer is in use during a breakpoint.
2015-08-23 15:26:17 -05:00
aroulin
03c5cfead4
Shader: Use std::sqrt for float instead of sqrt
2015-08-23 22:03:07 +02:00
aroulin
fa552f11ef
Shader: RCP and RSQ computes only the 1st component
2015-08-23 22:01:17 +02:00
aroulin
16f39aa452
x64-emitter: add RCPSS SSE instruction
2015-08-23 15:42:58 +02:00
Lioncash
250d474280
Merge pull request #1058 from lioncash/ptr
...
emitter: Remove pointer casts
2015-08-22 18:42:47 -04:00
Yuri Kunde Schlesner
78735e2ada
Fix broken boot introduced by last-minute change in #1025
2015-08-22 18:12:23 -03:00
Yuri Kunde Schlesner
3efb205a68
Merge pull request #1025 from yuriks/heap-management
...
Kernel: Correct(er) handling of Heap and Linear Heap allocations
2015-08-22 14:01:57 -07:00
aroulin
2f1514b904
Shader: implement DPH/DPHI in JIT
2015-08-22 11:09:53 +02:00
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.
2015-08-22 11:09:53 +02:00
Lioncash
78e7c77ff5
emitter: Remove pointer casts
...
This should also technically silence quite a few ubsan warnings.
2015-08-21 17:09:33 -04:00
Subv
0c7da9b815
HWRasterizer: Implemented stencil ops 6 and 7.
2015-08-21 11:05:56 -05:00
Subv
7c1f84a92b
SWRasterizer: Implemented stencil ops 6 and 7.
...
IncrementWrap and DecrementWrap, verified with hwtests.
2015-08-21 11:01:42 -05:00
Subv
e43eb130d4
HWRasterizer: Implemented stencil op 1 (GL_ZERO)
2015-08-21 10:59:49 -05:00
Subv
fef1462371
SWRasterizer: Implemented stencil action 1 (GL_ZERO).
...
Verified with hwtests.
2015-08-21 10:35:25 -05:00
Subv
b3e530d005
SWRasterizer: Removed a todo. Verified with hwtests.
2015-08-21 10:09:15 -05:00
Subv
8e6336d96b
SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled.
...
The HW renderer already did this.
2015-08-21 09:48:43 -05:00
Subv
e74825e3d0
Rasterizer: Abstract duplicated stencil code into a lambda.
2015-08-21 09:45:36 -05:00
Subv
46f660a789
GLRasterizer: Implemented stencil testing in the hw renderer.
2015-08-20 10:11:09 -05:00
Subv
186873420f
GPU/Rasterizer: Corrected the stencil implementation.
...
Verified the behavior with hardware tests.
2015-08-20 10:10:35 -05:00
Lioncash
e85c5dbb54
emitter: Remove unnecessary defines
2015-08-20 04:45:32 -04:00
Lioncash
a796149c42
emitter: Remove unnecessary else keywords
2015-08-20 04:45:31 -04:00
Lioncash
e88dc7fc6d
emitter: Remove unused code
2015-08-20 04:45:30 -04:00
Lioncash
8738963bce
emitter: Remove unimplemented JMP prototype
2015-08-20 04:45:29 -04:00
Lioncash
55461125ba
emitter: Pass OpArg by reference where possible
2015-08-20 04:45:28 -04:00
Lioncash
0609b89f74
emitter: Remove unnecessary inline specifiers
...
Functions implemented in a class definition are already implicitly inline.
2015-08-20 04:45:22 -04:00
bunnei
21ba05e5f1
Merge pull request #1035 from darkf/mingw-fix
...
Fix building under MinGW
2015-08-19 20:40:31 -04:00
bunnei
a575399fbc
Merge pull request #1055 from aroulin/shader-sge-sgei-slt
...
Shader: Implement SGE, SGEI and SLT in interpreter/JIT
2015-08-19 19:58:49 -04:00
Yuri Kunde Schlesner
08325e51e5
Merge pull request #1045 from LittleWhite-tb/qt-recent-files
...
Improvements for MRU
2015-08-19 13:04:03 -07:00
LittleWhite
adee93d784
Improvements for MRU
...
avoid duplicates
always put the last file loaded to top of the list
2015-08-19 21:33:34 +02:00
aroulin
f3e8f42718
Shader: implement SGE, SGEI and SLT in JIT
2015-08-19 14:29:39 +02:00
aroulin
863730f6a7
Shader: implement SGE, SGEI in interpreter
2015-08-19 14:29:39 +02:00
Yuri Kunde Schlesner
a9fc659809
Merge pull request #996 from yuriks/texture-copy
...
GPU: Implement TextureCopy-mode display transfers
2015-08-18 20:52:40 -07:00
bunnei
3c5ff418ca
Merge pull request #1047 from aroulin/shader-ex2-lg2
...
Shader: Save caller-saved registers in JIT before a CALL
2015-08-18 22:02:25 -04:00
aroulin
2f9eb98f03
Shader: Save caller-saved registers in JIT before a CALL
2015-08-19 03:40:07 +02:00
bunnei
026379ed55
Merge pull request #1037 from aroulin/shader-ex2-lg2
...
Shader: Implement EX2 and LG2 in interpreter/JIT
2015-08-18 19:42:32 -04:00
darkf
e053d30bf7
Fix building under MinGW
2015-08-17 22:21:14 -07:00
bunnei
1f18c9f8dd
Merge pull request #1034 from yuriks/rg8-textures
...
videocore: Added RG8 texture support
2015-08-16 22:17:12 -04:00
aroulin
7d3a6016d6
Shader: implement EX2 and LG2 in JIT
2015-08-17 01:12:34 +02:00
LittleWhite
9d6748fa94
Fix Linux GCC 4.9 build (complaining about undeclared memset)
2015-08-16 17:21:08 +02:00