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