Commit Graph

5474 Commits (8e2f62c6a59f12be521b46c347f7efd8bf6a025d)
 

Author SHA1 Message Date
bunnei f84c965dec Merge pull request #2884 from wwylele/clip
gl_rasterizer: add clipping plane z<=0 defined in PICA
8 years ago
bunnei 92a4b2faf8 Merge pull request #2889 from Schplee/updated-logo-svg
Updated master logo to new logo svg
8 years ago
Subv 8a9a4e2c42 GPU/Warnings: Explicitly cast the screen refresh ticks to u64. 8 years ago
Subv 65f19b51c4 Warnings: Add UNREACHABLE macros to switches that contemplate all possible values. 8 years ago
Subv 145a7293a3 HLE/Applets: Fixed some conversion warnings when creating the framebuffer shared memory objects. 8 years ago
Subv d237a89048 CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions. 8 years ago
Subv 9d0841b48b Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache.
Fixes a few warnings.
8 years ago
Subv d3fb1d6c38 Dyncom: Fixed a conversion warning when decoding thumb instructions. 8 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.
8 years ago
wwylele 72b26ac32f swrasterizer/clipper: remove tested TODO
hwtested. Current implementation is the correct behavior
8 years ago
wwylele 5a4af616c6 gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader 8 years ago
wwylele 1eca380886 gl_rasterizer: add clipping plane z<=0 defined in PICA 8 years ago
Yuri Kunde Schlesner 46d1ca768d Merge pull request #2872 from wwylele/sw-geo-factor
SwRasterizer/Lighting: implement geometric factor
8 years ago
Yuri Kunde Schlesner fe7e0eada0 Merge branch 'update-soundtouch' (PR #2885) 8 years ago
MerryMage 056a08cdbf externals: Update soundtouch 8 years ago
James Rowe bbfa9d0635 Merge pull request #2861 from wwylele/motion-refactor
Refactor MotionEmu into a InputDevice
8 years ago
wwylele 54c0c8adee HID: fix a comment and a warning 8 years ago
James Rowe 8afa81ac1b Merge pull request #2871 from wwylele/sw-spotlight
SwRasterizer/Lighting: implement spot light
8 years ago
Schplee d51f4d21bb Updated master logo to new logo svg 8 years ago
B3n30 5d0a1e7efd Added missing parts in libnetwork (#2838)
* Network: Set and send the game information over enet

Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
8 years ago
wwylele 0f35755572 pica/command_processor: build geometry pipeline and run geometry shader
The geometry pipeline manages data transfer between VS, GS and primitive assembler. It has known four modes:
 - no GS mode: sends VS output directly to the primitive assembler (what citra currently does)
 - GS mode 0: sends VS output to GS input registers, and sends GS output to primitive assembler
 - GS mode 1: sends VS output to GS uniform registers, and sends GS output to primitive assembler. It also takes an index from the index buffer at the beginning of each primitive for determine the primitive size.
 - GS mode 2: similar to mode 1, but doesn't take the index and uses a fixed primitive size.
hwtest shows that immediate mode also supports GS (at least for mode 0), so the geometry pipeline gets refactored into its own class for supporting both drawing mode.
In the immediate mode, some games don't set the pipeline registers to a valid value until the first attribute input, so a geometry pipeline reset flag is set in `pipeline.vs_default_attributes_setup.index` trigger, and the actual pipeline reconfigure is triggered in the first attribute input.
In the normal drawing mode with index buffer, the vertex cache is a little bit modified to support the geometry pipeline. Instead of OutputVertex, it now holds AttributeBuffer, which is the input to the geometry pipeline. The AttributeBuffer->OutputVertex conversion is done inside the pipeline vertex handler. The actual hardware vertex cache is believed to be implemented in a similar way (because this is the only way that makes sense).
Both geometry pipeline and GS unit rely on states preservation across drawing call, so they are put into the global state. In the future, the other three vertex shader units should be also placed in the global state, and a scheduler should be implemented on top of the four units. Note that the current gs_unit already allows running VS on it in the future.
8 years ago
wwylele 8285ca4ad8 pica/shader/jit: implement SETEMIT and EMIT 8 years ago
wwylele 36981a5aa6 pica/primitive_assembly: Handle winding for GS primitive
hwtest shows that, although GS always emit a group of three vertices as one primitive, it still respects to the topology type, as if the three vertices are input into the primitive assembler independently and sequentially. It is also shown that the winding flag in SETEMIT only takes effect for Shader topology type, which is believed to be the actual difference between List and Shader (hence removed the TODO). However, only Shader topology type is observed in official games when GS is in use, so the other mode seems to be just unintended usage.
8 years ago
wwylele bb63ae3052 correct constness 8 years ago
wwylele 28128348f2 pica/shader/interpreter: implement SETEMIT and EMIT 8 years ago
wwylele 46c6973d2b pica/shader: extend UnitState for GS
Among four shader units in pica, a special unit can be configured to run both VS and GS program. GSUnitState represents this unit, which extends UnitState (which represents the other three normal units) with extra state for primitive emitting. It uses lots of raw pointers to represent internal structure in order to keep it standard layout type for JIT to access.
This unit doesn't handle triangle winding (inverting) itself; instead, it calls a WindingSetter handler. This will be explained in the following commits
8 years ago
wwylele 223bd35450 motion_emu: no need to include thread in header 8 years ago
Yuri Kunde Schlesner 21204ba488 Merge pull request #2881 from MerryMage/dsp-firm-check
dsp_dsp: Remove size assertion in LoadComponent
8 years ago
MerryMage b67c2dc82c dsp_dsp: Remove size assertion in LoadComponent 8 years ago
bunnei 595070c901 Merge pull request #2879 from danzel/patch-1
Fix Spelling/English mistakes
8 years ago
Dave Leaver bf71fc0342 Fix Spelling/English mistakes 8 years ago
Sebastian Valle d59f503729 Merge pull request #2843 from Subv/applet_slots
Services/APT: Use an array to hold data about the 4 possible concurrent applet types (Application, Library, HomeMenu, System)
8 years ago
Weiyi Wang 7cd8a65949 Merge pull request #2875 from wwylele/bump-skip
gl_shader_gen: don't call SampleTexture when bump map is not used
8 years ago
wwylele 686fb3e78c gl_shader_gen: don't call SampleTexture when bump map is not used 8 years ago
James Rowe 8fd28244e4 Merge pull request #2869 from j-selby/docker-build
Travis: Use Docker to build for Linux
8 years ago
James Rowe a3aa8617bc Merge pull request #2867 from j-selby/tag-naming
Implement correct folder structure for CI builds
8 years ago
wwylele 188194908c move MotionEmu from core/frontend to input_common as a InputDevice 8 years ago
wwylele 867eabd6b7 HID: use MotionDevice for Accelerometer and Gyroscope 8 years ago
Weiyi Wang 53ef90d1bd Merge pull request #2874 from danzel/spelling-1
Fix some spelling mistakes
8 years ago
danzel 8d3f48d0a3 Fix some spelling mistakes 8 years ago
wwylele 945f9a1b04 SwRasterizer/Lighting: implement spot light 8 years ago
wwylele 14ee32c46a SwRasterizer/Lighting: implement geometric factor 8 years ago
Weiyi Wang aaf5161344 Merge pull request #2863 from wwylele/pad-state-zero
HID: zero unused PadState bits
8 years ago
wwylele 599de29ea3 HID: zero unused PadState bits 8 years ago
James fa64309aac Travis: Use Docker to build for Linux 8 years ago
Weiyi Wang 2415bad9ad Merge pull request #2868 from wwylele/swr-tuple
SwRasterizer/Lighting: use make_tuple instead of constructor
8 years ago
wwylele 5d9d42f0d0 SwRasterizer/Lighting: use make_tuple instead of constructor
implicit tuple constructor is a c++17 thing, which is not supported by some not-so-old libraries. Play safe for now
8 years ago
j-selby 80f85b429c Implement correct folder structure for CI builds 8 years ago
James Rowe 9f6868ad9b Merge pull request #2857 from j-selby/deploy-fix
Travis/AppVeyor: Deploy based upon tags
8 years ago
wwylele db309b2423 pica/regs: layout geometry shader configuration regs
All the register meanings are derived from ctrulib (3dbrew is outdated for most of them)
8 years ago