Commit Graph

123 Commits

Author SHA1 Message Date
34fa0b6d9c Pica/DebugUtils: Add convenient tev setup printer. 2014-08-25 22:03:18 +02:00
27cab6477e Pica/Rasterizer: Add initial implementation of texture combiners. 2014-08-25 22:03:18 +02:00
c4691b784b Pica: Add support for dumping textures. 2014-08-25 22:03:18 +02:00
162d641a30 Pica/Math: Improved the design of the Vec2/Vec3/Vec4 classes and simplified rasterizer code accordingly.
- Swizzlers now return const objects so that things like "first_vec4.xyz() = some_vec3" now will fail to compile (ideally we should support some vector holding references to make this actually work).
- The methods "InsertBeforeX/Y/Z" and "Append" have been replaced by more versions of MakeVec, which now also supports building new vectors from vectors.
- Vector library now follows C++ type promotion rules (hence, the result of Vec2<u8> with another Vec2<u8> is now a Vec2<int>).
2014-08-25 22:03:18 +02:00
62c36a4ef0 Pica/VertexShader: Fix a bug in the bitfield definitions and add the "negate" field for swizzlers. 2014-08-25 22:03:18 +02:00
26ade98411 Pica/citra-qt: Replace command list view and command list debugging code with something more sophisticated. 2014-08-25 22:03:18 +02:00
0465adf206 Pica/CommandProcessor: Implement parameter masking. 2014-08-25 22:03:18 +02:00
f37e39deb9 Pica: Add debug utilities for dumping shaders. 2014-08-25 22:03:18 +02:00
6ea003c7b5 Pica: Add debug utility functions for dumping geometry data. 2014-08-25 22:03:18 +02:00
a3a70e56ac Fix the threading for GL Context in Qt5.
Connect the emu_thread start/finish to a moveContext slot.
2014-08-25 00:47:00 +10:00
388356f629 Merge pull request #42 from archshift/glexp
Use glewExperimental to fix crashes with citra-glfw
2014-08-13 13:10:45 -04:00
662a1993e6 float24: Remove private default constructor
Fixes building with clang.
2014-08-13 02:54:16 -07:00
d71af1bd20 Use glewExperimental on Linux in order to fix GLFW-mode 2014-08-12 13:42:04 -07:00
94d742fe17 Pica: Add basic rasterizer. 2014-08-12 13:50:07 +02:00
94aa9da562 Pica: Add triangle clipper. 2014-08-12 13:49:33 +02:00
9a76a2d061 Pica: Add primitive assembly stage. 2014-08-12 13:48:56 +02:00
c526512619 Pica: Add vertex shader implementation. 2014-08-12 13:48:10 +02:00
d443f0a921 Pica: Implement vertex loading. 2014-08-12 13:47:31 +02:00
1a43f69477 Pica: Add register definition for vertex loading and rendering. 2014-08-12 13:47:31 +02:00
76a586de49 Pica: Add command processor. 2014-08-12 13:47:30 +02:00
98ad16a45b Pica: Add float24 structure.
24-bit floating points are used internally for calculations on the GPU, however the current code will still emulate that with 32-bit floating points.
In the future we might want to accurately perform the calculations with correct bitness in the future, but for now we just wrap the calculations around this class.
2014-08-12 13:46:24 +02:00
8528c810cf Video core: Add utility class for vector operations.
I wrote most of this for ppsspp, so I hold full copyright over it.
In addition to the original release in ppsspp, this provides functionality to easily extend e.g. two-dimensional vectors to three-dimensional vectors.
2014-08-12 13:46:20 +02:00
7b6a7d7dfb Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.
This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible.
This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though.
2014-08-12 13:32:56 +02:00
9c781a6c76 Remove the fancy RegisterSet class introduced in 4c2bff61e.
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures.
Instead, we now use a more conventional approach which is a lot more clean to use.
2014-08-12 02:17:21 +02:00
4e9f305ed2 GSP: Removed dumb GX prefixes to functions/structs in GSP namespace.
- Various other cleanups.
2014-08-05 23:58:00 -04:00
9fd2537e93 Use uniform formatting when printing hexadecimal numbers. 2014-07-23 00:44:31 +02:00
9b0d0c81a0 GSP: Clean up GX command processing a lot and treat command id as a u8 rather than a u32.
Anonymous structs are not standard C++, hence don't use them.
2014-07-23 00:44:31 +02:00
246cb75584 RegisterSet: Simplify code by using structs for register definition instead of unions. 2014-07-23 00:33:08 +02:00
75775e9ef4 GPU: Make use of RegisterSet. 2014-07-23 00:33:08 +02:00
c6fdeb7b23 Renderer: Fix component order in bottom framebuffer. 2014-07-23 00:33:08 +02:00
cb6f97b2eb Renderer: Respect the active_fb GPU register. 2014-07-23 00:33:08 +02:00
9b96407e8e Renderer: Add a few TODOs. 2014-07-23 00:33:08 +02:00
a4d89edd9b GPU debugger: Don't keep track of debugging data if no debugger views are active. 2014-07-22 22:27:27 +02:00
c34ba38001 GPU debugger: Const correctness and build fix. 2014-06-12 06:10:56 -04:00
ee4717aaae Preprocessor: #if's out OSX-specific GL changes on other platforms 2014-06-12 06:10:55 -04:00
4c2bff61e5 Pica: Use some template magic to define register structures efficiently. 2014-06-12 06:10:54 -04:00
f82410e633 Further refine GPU command list debugging. 2014-06-12 06:10:53 -04:00
b0051b2203 Refine command list debugging functionality and its qt interface. 2014-06-12 06:10:52 -04:00
6893732348 citra-qt: Add command list view. 2014-06-12 06:10:52 -04:00
5d62f5d92a GPU debugger: Add functionality to inspect command lists. 2014-06-12 06:10:51 -04:00
50b2b73be4 video core: added PICA definitions file. 2014-06-12 06:10:51 -04:00
1dfa392824 Rename LCD to GPU. 2014-06-12 06:10:49 -04:00
31666632ca Add initial graphics debugger interface. 2014-06-12 06:10:48 -04:00
5a8ed196e6 common_types: Changed BasicRect back to Rect, in the common namespace
Only Rect is in the namespace for now; the rest of common should be added in the future
2014-05-19 17:57:35 -07:00
034e3aabc8 Improved clarity and whitespace
Changed QGL version to 3,2 in order to be less restrictive, yet it should still change up to 4,1 on OSX on Qt5.
2014-05-19 15:21:55 -07:00
403e4bf837 CMakeLists: rename HEADS, improved comments
Changes for clarity of comments, removed redundant compiler flags.
2014-05-19 15:19:36 -07:00
71b8789803 Indent fixes 2014-05-19 13:51:59 -07:00
b8c8d0903e Merge remote-tracking branch 'upstream/master' into issue-7-fix 2014-05-16 23:21:03 -07:00
e1fcb2fdfb Update FlipFramebuffer
Less calculations + fix
2014-05-08 18:05:30 +02:00
704075f04a Fixed indents 2014-04-30 20:13:28 -07:00