Commit Graph

4450 Commits

Author SHA1 Message Date
Andrew Church
97675e2711 opengl: Fix failure to upload new data when expanding a data buffer. 2016-08-13 21:22:51 +09:00
James Benton
9eb600887f libdecaf: Add support for returning float / double from HLE functions. 2016-08-13 13:06:17 +01:00
James Benton
643c80fdcb nn_olv: Add missing virtual table set for UploadedDataBase. 2016-08-13 13:05:58 +01:00
James Benton
0047491c63 coreinit: Implement block heap allocators. 2016-08-13 13:05:43 +01:00
James
1a367d409e Merge pull request #277 from achurch/state-cache-fix
opengl: Fix overly aggressive texture upload avoidance.
2016-08-13 12:06:22 +01:00
James Benton
fa6a1f7cb7 opengl: Fix missing invalidate check. 2016-08-13 12:05:22 +01:00
Andrew Church
2815923413 opengl: Fix overly aggressive texture upload avoidance. 2016-08-13 20:02:34 +09:00
James Benton
32597362c8 gx2: Add missing logic to GX2SetColorBuffer. 2016-08-13 11:57:21 +01:00
James Benton
6b8d1fe920 gx2: Add missing logic to GX2SetDepthBuffer. 2016-08-13 11:43:23 +01:00
James
21d193059f Merge pull request #276 from achurch/db-depth-base
gpu: Shift depth buffer addresses by 8 in PM4 packet.
2016-08-13 11:41:30 +01:00
Andrew Church
fe8e307159 gx2: Shift depth buffer addresses by 8 in PM4 packet. 2016-08-13 19:38:13 +09:00
James Benton
824032bfec opengl: Use more CP_COHER_CNTL invalidate flags. 2016-08-13 11:24:39 +01:00
James
244c643d59 Merge pull request #264 from achurch/generic-data-buffers
opengl: Use common logic for uniform, attribute, and feedback buffers.
2016-08-13 11:15:46 +01:00
James
ce8536fd71 Merge pull request #274 from achurch/logging-fixes
Logging fixes.
2016-08-13 11:14:07 +01:00
Brett Lawson
496251af90 Fix bug causing scan buffers to copy with wrong sizes. 2016-08-13 02:59:40 -07:00
Andrew Church
44f6ebe1e0 decaf-sdl: Make OpenGL errors go to the regular log target. 2016-08-13 17:43:27 +09:00
Andrew Church
7688dc2e43 decaf-sdl: Fix logging of config file errors. 2016-08-13 17:43:23 +09:00
Andrew Church
131c007c45 opengl: Use common logic for uniform, attribute, and feedback buffers.
This removes duplicated buffer setup code, and allows colocated
transform feedback and attribute buffers to share the same OpenGL
buffer object.
2016-08-13 17:20:15 +09:00
James Benton
45ab584831 vpad: Stub VPADControlMotor. 2016-08-13 02:18:26 +01:00
James Benton
cb4c76a11f coreinit: Add FSSetUserData, FSGetUserData. 2016-08-13 01:57:42 +01:00
James Benton
84e142c3d9 Fix debugger key input.
Always send input to debugger, only send to swkbd when debugger is hidden.
2016-08-13 00:28:10 +01:00
Andrew Church
e8203f1768 opengl: Take the absolute value of LOG_* arguments.
It appears that the LOG shader instructions ignore the sign bit of
the argument (cf. Mesa, which inserts an explicit MAX(x,0) before a
log instruction when translating an input log() call).
2016-08-13 00:22:21 +01:00
James Benton
31b94348d2 opengl: Remove unused task queue stuff. 2016-08-13 00:19:12 +01:00
James Benton
b1270ca8bf opengl: Fixed signed / unsigned comparison warning. 2016-08-13 00:18:58 +01:00
James Benton
051419b479 opengl: Use a typedef for swap function. 2016-08-13 00:18:47 +01:00
James Benton
1fe19c500f swkbd: Implement basic software keyboard support.
Press some letters then enter to get past xenoblade character name screen ;).
2016-08-13 00:12:49 +01:00
James Benton
ac946d7012 snd_core: Remove old unnecessary hack for adjusting voice offsets. 2016-08-13 00:12:49 +01:00
Brett Lawson
e3f9b3e678 Fixed typo in new surface generation code. 2016-08-12 00:03:55 -07:00
Brett Lawson
7e439a42a7 Implement GPU-side surface copying. 2016-08-12 14:47:11 -07:00
Brett Lawson
17b9a07f4c Fix bug causing host attribute buffers to become corrupted. 2016-08-12 13:08:42 -07:00
Brett Lawson
daa29c4802 Only bother updating attribute buffer memory bounds on change. 2016-08-12 13:08:42 -07:00
Brett Lawson
904e72491b Fix GLSL TEX SAMPLE translation to account for OFFSET's. 2016-08-12 13:08:42 -07:00
Brett Lawson
2d30c05913 Implement better multi-use texture semantics.
We not maintain a list of textures for each PPC texture that
exists in memory.  This allows us to use properly sized texture
objects on the host-GPU while also supporting various ways that
games could (miss-)use texture data...  Note that this commit
mostly reverts commit (9674136) and also cleans up the handling
of different data formats to a common path.
2016-08-12 13:08:42 -07:00
Brett Lawson
45eb33eaaa Removed gpu_texture's dependancy on GX2 library.
This is step 1 of a major refactor needed to the GPU texture
handling code... :(
2016-08-12 13:08:42 -07:00
James Benton
c224d4f4d2 gx2: Add missing invalidation in GX2R unlock buffer & unlock surface. 2016-08-12 21:04:43 +01:00
James Benton
5d2e53d22f gx2: Add support for GX2R disable cpu / gpu invalidate flags. 2016-08-12 20:47:27 +01:00
James Benton
d95e37079a Change GX2Invalidate to correctly use the PM4 packet SURFACE_SYNC. 2016-08-12 20:29:28 +01:00
Adubbz
796fff3af8 Added a --display-mode option 2016-08-12 17:56:38 +01:00
James Benton
828a3ea8a6 decaf-sdl: Print error message to log when config.json parsing fails. 2016-08-12 17:56:08 +01:00
Brett Lawson
354903313e Merge pull request #270 from achurch/execute-tasks
opengl: Add missing executeTasks() call.
2016-08-12 09:53:00 -07:00
James Benton
97a259ebcb opengl: Align surface address based on tile mode.
Only 2D/2B/3D/3B tileMode use the swizzle bits, so we need to align to 0x800
for those formats, and 0x100 for any other format.
2016-08-12 13:42:54 +01:00
Andrew Church
92e56debe8 opengl: Add missing executeTasks() call. 2016-08-12 16:57:14 +09:00
Brett Lawson
1dbe5233f0 Fix bug in NO_PERSISTENT_MAP and renamed it for more clarity. 2016-08-11 19:22:33 -07:00
Brett Lawson
eceecdf304 Merge pull request #267 from achurch/burstcnt
opengl: Properly translate export instructions with nonzero BURST_COUNT.
2016-08-11 13:02:26 -07:00
Brett Lawson
273871ecbd Handle memory invalidation directly.
This makes it so we don't put invalidation on a system
queue, but instead do it immediately.
2016-08-11 13:00:48 -07:00
Andrew Church
104aaa1b6a opengl: Properly translate export instructions with nonzero BURST_COUNT. 2016-08-12 02:42:17 +09:00
Andrew Church
9674136d07 opengl: Fix failure to reuse color buffers as textures.
Color buffer sizes can only be specified to tile granularity, while
texture sizes can be specified to texel granularity.  If a game renders
to an intermediate framebuffer with a non-tile-aligned effective size,
then sets that color buffer as a texture, the texture would be detected
as a separate surface due to the size difference, preventing the color
buffer's contents from being rendered.  (For example, Xenoblade uses
intermediate framebuffers of effective size 768x620 and 384x310, but
the framebuffer sizes are set to 768x624 and 384x320 respectively.)

This change allows surfaces to be resized as long as the guest surface
pitch remains unchanged.  To deal with differing sizes, texture
sampling calls multiply the texture coordinate with a scale factor
computed from the texture size specified by the program and the actual
OpenGL surface size.
2016-08-12 02:11:46 +09:00
Brett Lawson
34859afb42 Fix bug where framebuffers were being scaled instead of copied.
CopyColorBufferToScanBuffer is meant to copy pixel for pixel rather
than perform any scaling.  It is also assumed that the source
surface is big enough for the display you are rendering to.
2016-08-10 21:45:30 -07:00
Brett Lawson
2d3c91112c Correct issue where high semantic indexes were failing.
A previous change checked the wrong value.  Turns out that all
the semantic IDs are valid, we just need to be able to handle the
case where one was not actually defined.
2016-08-10 21:45:25 -07:00
Brett Lawson
1341857dae Fixed bug causing RGTC2 textures to not upload.
This was due to the upload using degamma rather than isSigned
to determine the texture type.
2016-08-10 21:45:20 -07:00