Commit Graph

3347 Commits

Author SHA1 Message Date
Gregory Hainaut 8dee7daeb9 gsdx-ogl: init textures for all formats
CID 150171
2016-03-30 19:56:19 +02:00
Gregory Hainaut 856a12f94f gsdx-ogl: init Render object
CID 147002
2016-03-30 19:56:19 +02:00
Gregory Hainaut a4d0c23071 gsdx: init GSCapture field
CID 159404
2016-03-30 19:56:19 +02:00
Gregory Hainaut f6ee94589f gsdx hw: OI_GSMemClear supports various frame formats
Could help #1267
2016-03-28 10:47:42 +02:00
Jonathan Li 587c0ea339 Merge pull request #1237 from turtleli/xinput
lilypad|xpad: Remove DirectX SDK dependency, support both XInput 1.3 and 1.4
2016-03-28 09:46:58 +01:00
Gregory Hainaut a99750ae87 gsdx hw: only enable OI_GsMemClear when both depth/alpha test are disabled
Fix #1262
2016-03-26 11:28:28 +01:00
Gregory Hainaut 261ef9ab6a gsdx: move some DBZGT hacks to Dx level
Based on this thread:

http://forums.pcsx2.net/Thread-Dragon-Ball-Z-Budokai-Tenkaichi-3-Graphical-Issue-Emulator-does-not-render-outlines
2016-03-25 08:23:50 +01:00
Gregory Hainaut 791a14bec0 gsdx linux: add a gui box to select the png compression level 2016-03-25 08:23:50 +01:00
Jonathan Li a80a7175f3 xpad: Use the Windows SDK and remove unneeded dependencies 2016-03-23 19:12:44 +00:00
Jonathan Li 13bb7cf30a xpad: Support both XInput 1.3 and 1.4 2016-03-23 19:12:43 +00:00
Gregory Hainaut 205b496d5c gsdx: fix gl recording regression 2016-03-21 18:52:26 +01:00
Gregory Hainaut 8e5e770fd1 gsdx hw: Ensure GS memory is always cleared properly
It will fix some issues on FMV

Previous behavior can be restored with the hack "UserHacks_DisableGsMemClear"

Fix #768
And maybe #855
2016-03-21 18:26:22 +01:00
Gregory Hainaut c43b1ac201 gsdx tc: extend the fast invalidation hack to limit the size of target read
It actually removes the previous hack that read the full target.

Unfortunately snowblind engine game uses big target so the read is very big too (1280x448)
which is killer for the perf. Whereas the game requires only 24x12 texels

Give a 2x speed boost on Champion of Norrath !!!
2016-03-20 18:11:44 +01:00
Gregory Hainaut 46ff5dccff gsdx: be debug friendly 2016-03-20 16:15:00 +01:00
Gregory Hainaut a83b8d62ec gsdx linux: add a gui checkbox for the "fast texture invalidation" hack 2016-03-20 13:59:24 +01:00
Gregory Hainaut 7eb242d3ad gsdx-ogl: remove the ogl_texture_storage option
The previous commits make PBO faster for all drivers.
2016-03-19 01:00:52 +01:00
Gregory Hainaut 68aa182b16 gsdx-ogl: sort the texture upload code
I wanted to do a separate path for palette texture. So far, it isn't very
conclusive.
2016-03-19 00:58:58 +01:00
Gregory Hainaut 46a4d2dc47 gsdx-tc: add UserHacks_DisablePartialInvalidation for snowblind engine game
Games uses very special texture with a lots of repeating.

It is much faster to send the full texture rather than trying to partially invalidate it.

On my gs dump:
FPS: 29 => 68 !
2016-03-19 00:25:58 +01:00
Gregory Hainaut eb69522641 gsdx-ogl: optimize texture memory upload
Previous code was
1/ unpack texture into local buffer
2/ copy local buffer into gl buffer
3/ copy gl buffer to texture

New code is
1/ unpact texture directly into gl buffer
2/ copy gl buffer to texture

Perf increase (done in native)
DQ8:   255 -> 270 (+5%)
Colin: 126 -> 135 (+8%)
ZoE:   50  -> 54  (+8%)
2016-03-18 20:24:42 +01:00
Gregory Hainaut da741e294e gsdx-ogl: optimize GPU->CPU memory transfer size
Might help for snow engine game (a little)

Previous code use to read the full texture whereas now it will be limited
to the size of the useful data.
2016-03-18 20:24:42 +01:00
Jonathan Li 02ea7d390c lilypad:windows: Switch to includes from Windows SDK 2016-03-17 23:58:19 +00:00
Jonathan Li 834652922a lilypad:windows:xinput: Only support 1.3 and 1.4
1.3 is used on Vista and 7, so we don't need earlier versions.
2016-03-17 23:58:18 +00:00
Jonathan Li 490cb757bf lilypad:windows: Clean up property mess
I probably should have used property sheets as well, but it's still a
good improvement. It does cut down quite a few 64-bit warnings.
2016-03-16 20:54:54 +00:00
Jonathan Li a487aaf952 Merge pull request #1232 from turtleli/nonxp-toolkit
windows: Switch to Non-XP compatible toolkits
2016-03-16 20:34:27 +00:00
Jonathan Li c829826870 Merge pull request #1231 from turtleli/cdvd-fixes
cdvdgigaherz: Dual layer DVD fixes
2016-03-16 19:55:20 +00:00
Jonathan Li bfbc6de7b5 cdvdgigaherz: Fix Dual layer DVD layer 1 read
ReadFile reports that the DVD is reading from the end of file when
attempting to read any layer 1 sectors.

Use the FSCTL_ALLOW_EXTENDED_DASD_IO ioctl to prevent the file system
driver from carrying out boundary checks.
2016-03-16 17:55:27 +00:00
Jonathan Li 2213564977 cdvdgigaherz: Fix TOC creation
cdvdgigaherz only determines whether there is no disc, a CD, a single
layer DVD or dual layer DVD in the drive. It does not detect whether a
CD/DVD is a PS2 CD/DVD or not.

Fix the missing TOCs.
2016-03-16 17:55:26 +00:00
Jonathan Li 9e2f309e30 cdvdgigaherz: Fix incorrect dual-layer DVD track info
Single-session DVDs only have 1 track, regardless of whether the DVD is
single or dual layered.
2016-03-16 17:55:19 +00:00
Jonathan Li 643db78cc4 cdvdgigaherz: Fix last resort DVD size calculations
The calculated size values were off by one for single layer DVDs, off by
two for dual layer PTP DVDs, and just wrong for OTP DVDs.

Usually the IOCTL_DISK_GET_LENGTH_INFO ioctl will have succeeded already.
2016-03-15 23:20:06 +00:00
Jonathan Li 41986f4307 cdvdgigaherz: Remove unneeded IOCTL_DVD_READ_STRUCTURE ioctls
Only 1 IOCTL_DVD_READ_STRUCTURE ioctl call is necessary for determining
the DVD media type and layer break address. All the necessary
information is already present in the layer 0 physical descriptor.
2016-03-15 23:19:10 +00:00
Gregory Hainaut 0ef8ddb2a2 Merge pull request #924 from kust2708/onepad-gui
Onepad GUI for Linux - New wxWidget interface
2016-03-15 20:23:44 +01:00
Jonathan Li 7292955600 cdvdgigaherz: Fix sector address endian issue
The sector addresses returned when reading the layer information from a
DVD are big-endian. Convert the addresses to little endian.
2016-03-15 17:34:36 +00:00
Jonathan Li 5db0d682b8 cdvdgigaherz: Fix detection typo 2016-03-15 17:34:35 +00:00
Jonathan Li d07076b9d4 cdvdgigaherz: Dual layer DVD type/layer 1 start LSN fixes
For dual layer DVDs, CDVDgetDualInfo() should return the first layer 1
LSN, not the last layer 0 LSN, which is what GetLayerBreakAddress()
returns. This matches what the internal ISO reader returns.

Also, PTP DVDs should return a value of 1 for the media type, not 2.

Finally, adjust the CDVDgetDualInfo() return value so PCSX2 correctly
recognises dual layer DVDs.
2016-03-15 17:28:43 +00:00
Jonathan Li b516c1001a windows: Set _WIN32_WINNT to 0x0600 (Windows Vista) 2016-03-13 13:41:16 +00:00
Jonathan Li 9ed9b2d8cd windows: Switch to DefaultPlatformToolset aka non-XP toolsets
Basically I ran
find . -name "*.vcxproj" -exec sed -i -e 's/_xp//' {} \;

This will likely break XP, but it paves the way on Windows for a PCSX2
that does not require the DirectX redistributables to be installed for
Windows 8, 8.1 and 10 users. Windows Vista and 7 users will still require
the DirectX redistributable files for XInput and XAudio, though PCSX2
should still be capable of running if a user does not actually use either
of them.
2016-03-13 12:04:28 +00:00
Gregory Hainaut 653998e005 gsdx: add vertex data offset in comment
Avoid to recompute them every time I want to decode the vertex stream
2016-03-12 15:53:38 +01:00
Gregory Hainaut de7d127c52 gsdx-ogl: create a small macro to load function pointers 2016-03-12 15:52:36 +01:00
Gregory Hainaut 95ef4e20f8 gsdx-ogl: load GL_ARB_viewport_array function pointer for the future 2016-03-12 15:52:36 +01:00
Gregory Hainaut 56c2e94daf gsdx-ogl: sort extension requirement
All GL4 extensions supported by DX10 class GPU will be soon mandatory

Namely:
* GL_ARB_copy_image
* GL_ARB_texture_barrier
* GL_ARB_clip_control
* GL_ARB_direct_state_access
* GL_ARB_separate_shader_objects
* GL_ARB_buffer_storage
2016-03-12 15:52:36 +01:00
Gregory Hainaut a3788c4e98 Merge pull request #1225 from PCSX2-Alpha/scaling_fix
GSDX: set a safe limit to Framebuffer width
2016-03-12 15:42:18 +01:00
Akash 997f0535f5 GSDX: Set a safe limit to Framebuffer width
There are likely few games (RE4) which constantly change the FBW register value causing the framebuffer width to be updated at every interval. Adding a safe limit (512) similar to frame buffer height would prevent such constant changes of the framebuffer width when FBW changes once again to an even lower value.
2016-03-11 07:28:05 +05:30
Gregory Hainaut ec57f1305a gsdx: detect rendering outside of the framebuffer
Could help to detect rendering issue (for example missing fmv)
2016-03-10 19:03:39 +01:00
Gregory Hainaut bc73195193 gsdx-ogl: pack more tightly the FS UBO
Merge TA vec2 + Af vec1 into a single vec4
2016-03-10 18:29:05 +01:00
Jonathan Li 3e278a2e75 Merge pull request #1197 from turtleli/gsdx-png
Gsdx: PNG screenshots (Windows), use libpng directly
2016-03-08 23:49:56 +00:00
Gregory Hainaut 7b8616ac7b gsdx-ogl: add function pointer for query object 2016-03-06 13:39:24 +01:00
Jonathan Li 6b950d0408 gsdx: Allow dump and capture PNG compression to be changed
Valid values for png_compression_level are from 0 (no compression) to 9
(max compression). The default is 1.

v2: Use zlib Z_BEST_SPEED (1) and Z_BEST_COMPRESSION (9) defines.
2016-03-02 22:58:45 +00:00
Jonathan Li a97cbf038c gsdx-d3d9: Save screenshots as PNG files
v2: Avoid unnecessary memory copy
2016-03-02 22:57:17 +00:00
Jonathan Li d865efceb9 gsdx-d3d11: Save screenshots as PNG files 2016-03-02 22:57:16 +00:00
Jonathan Li cf939620ea gsdx-ogl: Save depth image as RGB and alpha images 2016-03-02 22:57:16 +00:00