Commit graph

535 commits

Author SHA1 Message Date
Jannik Vogel
101eb11369 Move default_attributes into Pica state 2016-05-12 19:05:41 +02:00
bunnei
c08071fe90 Merge pull request #1690 from JayFoxRox/tex-type-3
Pica: Implement texture type 3 (Projection2D)
2016-05-11 21:47:08 -04:00
Jannik Vogel
acfb5257dd Turn ShaderSetup into struct 2016-05-11 23:48:24 +02:00
Jannik Vogel
76be1439f6 Pica: Add tc0.w to OutputVertex 2016-05-11 08:07:36 +02:00
Jannik Vogel
22426f3e89 Pica: Replace logic in shader.cpp with loop 2016-05-03 01:40:47 +02:00
Emmanuel Gil Peyrot
c39a267974 VideoCore: Run include-what-you-use and fix most includes. 2016-04-30 17:02:41 +01:00
bunnei
df1d6ff8a1 Merge pull request #1730 from hrydgard/vertex-loader
* Remove late accesses to attribute_config

* Refactor: Extract VertexLoader from command_processor.cpp.

Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.

* Move "&" to their proper place, add missing includes and make some properly relative.

* Don't keep base_address in the loader, it doesn't belong there (with it, the loader can't be cached).

* Optimize the vertex loader, nearly doubling its speed.

* Debugger fix

* Move and rename the MemoryAccesses class to MemoryAccessTracker.
2016-04-29 09:42:47 -04:00
Yuri Kunde Schlesner
2396b01d5d Common: Remove section measurement from profiler (#1731)
This has been entirely superseded by MicroProfile. The rest of the code
can go when a simpler frametime/FPS meter is added to the GUI.
2016-04-29 00:07:10 -07:00
Henrik Rydgard
c1ee661492 Refactor: Extract VertexLoader from command_processor.cpp.
Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
2016-04-28 19:05:55 +02:00
Sam Spilsbury
48693e98fa shader: Shader size is long uint, not uint. 2016-04-25 00:40:03 +08:00
Sam Spilsbury
164d297c6f shader: Handle non-CALL opcodes with a break 2016-04-25 00:39:54 +08:00
Sam Spilsbury
3d9c27ec5f shader: Format string must be provided inline and not as a variable 2016-04-24 23:40:52 +08:00
bunnei
42045d12c2 shader_jit_x64: Rename RuntimeAssert to Compile_Assert. 2016-04-13 23:04:53 -04:00
bunnei
73c082b647 shader_jit_x64.cpp: Rename JitCompiler to JitShader. 2016-04-13 23:04:53 -04:00
bunnei
76f9651a3a shader_jit_x64: Free memory that's no longer needed after compilation. 2016-04-13 23:04:52 -04:00
bunnei
b6e8a9e52c shader_jit_x64: Use a sorted vector instead of a set for keeping track of return addresses. 2016-04-13 23:04:52 -04:00
bunnei
276e57fea6 shader_jit_x64: Use CALL/RET instead of JMP for subroutines. 2016-04-13 23:04:52 -04:00
bunnei
0f9796a63e shader_jit_x64: Separate initialization and code generation for readability. 2016-04-13 23:04:50 -04:00
bunnei
aec7a517ea shader_jit_x64: Get rid of unnecessary last_program_counter variable. 2016-04-13 23:04:49 -04:00
bunnei
5e6c1ccac7 shader_jit_x64: Execute certain asserts at runtime.
- This is because we compile the full shader code space, and therefore its common to compile malformed instructions.
2016-04-13 23:04:49 -04:00
bunnei
110725828a shader: Remove unused 'state' argument from 'Setup' function. 2016-04-13 23:04:48 -04:00
bunnei
885208150d shader_jit_x64: Specify shader main offset at runtime. 2016-04-13 23:04:47 -04:00
bunnei
13385606c3 shader_jit_x64: Allocate each program independently and persist for emu session. 2016-04-13 23:04:47 -04:00
bunnei
35f72f88ae shader_jit_x64: Rewrite flow control to support arbitrary CALL and JMP instructions. 2016-04-13 23:04:44 -04:00
bunnei
88fb200dca shader_jit_x64: Fix strict memory aliasing issues. 2016-04-13 23:04:43 -04:00
Mathew Maidment
3cf5e4d51c Merge pull request #1643 from MerryMage/make_unique
Common: Remove Common::make_unique, use std::make_unique
2016-04-05 20:10:11 -04:00
MerryMage
9f9c987924 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
bunnei
60b5818dde Merge pull request #1508 from JayFoxRox/vs-output-map
Respect vs output map
2016-03-22 11:59:12 -04:00
bunnei
07fe93e886 Merge pull request #1538 from lioncash/dot
shader_interpreter: use std::inner_product for the dot product
2016-03-20 00:35:06 -04:00
Lioncash
7b2af63608 video_core: Don't cast away const 2016-03-17 02:01:38 -04:00
Lioncash
6d9e7e962b shader_interpreter: use std::inner_product for the dot product
Same thing, less code.
2016-03-17 01:00:30 -04:00
bunnei
407c3173df Merge pull request #1503 from bunnei/clear-jit-cache
Clear JIT cache
2016-03-16 13:18:51 -04:00
Jannik Vogel
9e29ed3f66 PICA: Fix MAD/MADI encoding 2016-03-15 20:01:25 +01:00
Jannik Vogel
3941f74688 Respect vs output map 2016-03-14 13:03:34 +01:00
bunnei
fcbcf16024 shader_jit_x64: Clear cache after code space fills up. 2016-03-12 12:15:49 -05:00
bunnei
39b59df530 shader_jit_x64: Make assert outputs more useful & cleanup formatting. 2016-03-12 12:06:28 -05:00
bunnei
a5d41a373e shader: Update log message to use proper log class. 2016-03-12 12:03:32 -05:00
Lioncash
f932c2f4ac Common: Get rid of alignment macros
The gl rasterizer already uses alignas,
so we may as well move everything over.
2016-03-09 01:31:14 -05:00
Dwayne Slater
141fe87a0f Add immediate mode vertex submission 2016-03-02 22:16:38 -05:00
bunnei
3c3e328340 pica: Implement decoding of basic fragment lighting components.
- Diffuse
- Distance attenuation
- float16/float20 types
- Vertex Shader 'view' output
2016-02-05 17:17:28 -05:00
bunnei
9259a8baa5 Merge pull request #1367 from yuriks/jit-jmp
Shader JIT: Fix off-by-one error when compiling JMPs
2016-01-27 09:19:28 -05:00
Yuri Kunde Schlesner
b4c68589f6 Shader: Implement "invert condition" feature of IFU instruction
If the bit 0 of the JMPU instruction is set, then the jump condition
will be inverted. That is, a jump will happen when the boolean is false
instead of when it is true.
2016-01-24 20:29:06 -08:00
Yuri Kunde Schlesner
d1096d9adc Shader JIT: Fix off-by-one error when compiling JMPs
There was a mistake in the JMP code which meant that one instruction at
the destination would be skipped when the jump was taken. This commit
also changes the meaning of the culprit parameter to make it less
confusing and avoid similar mistakes in the future.
2016-01-24 02:15:56 -08:00
Lioncash
2cd98a45cb video_core: Reorganize headers 2015-09-11 07:31:15 -04:00
Lioncash
c95206abdd video_core: Remove unnecessary includes from headers 2015-09-11 00:10:03 -04:00
Lioncash
1d7a9c8752 video_core: Remove unused variables 2015-09-10 10:26:21 -04:00
aroulin
964fa561c5 Shader JIT: Use SCALE constant from emitter 2015-09-07 16:50:28 +02:00
aroulin
f588077bbb Shader: Fix size_t to int casts of register offsets 2015-09-07 16:50:28 +02:00
bunnei
43266c052e 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
7019a4eaeb video_core: Fix format specifiers warnings 2015-09-02 08:20:00 +02:00