Commit graph

7443 commits

Author SHA1 Message Date
Silent
2691f44970
Remove EmuCreateDeviceProxy and refactor D3D device creation
Greatly streamlines the code and most importantly,
ensures that CreateDevice and Release() are called on the window message
thread, just as it is required.

See:
https://docs.microsoft.com/en-us/windows/win32/direct3d9/multithreading-issues
2020-12-04 22:23:59 +01:00
Silent
5a8cfaf7f9
Add RunOnWndMsgThread to run arbitrary code on the window message thread 2020-12-04 20:48:36 +01:00
Silent
7902c12738
Don't use g_bRenderWindowActive for synchronization 2020-12-04 20:31:32 +01:00
RadWolfie
e2fcedd1b7 dsound: fix status return when envelope is complete 2020-12-03 21:13:22 -06:00
RadWolfie
07c3f3b0fa dsound: fix async flush 2020-12-03 21:13:21 -06:00
RadWolfie
f872bb5f8a dsound: replace size to empty function 2020-12-03 21:13:21 -06:00
RadWolfie
50d21d8127 dsound: don't process flush if there's no packets 2020-12-03 21:13:20 -06:00
RadWolfie
3a506df754 dsound: Add stream's flushex flag type to extend verbose output 2020-12-03 21:13:20 -06:00
RadWolfie
5031f1aa65 dsound: remove unused cxbxr flag from log 2020-12-03 21:13:19 -06:00
RadWolfie
3209bf7be5 dsound: fix pause flags as enums instead 2020-12-03 21:13:19 -06:00
RadWolfie
ee9612e263 dsound: fix stream class to match hardware with latest sampling log 2020-12-03 21:13:18 -06:00
PatrickvL
471f3894cc
Merge pull request #2058 from RadWolfie/input-list-fix
Change listing to target specific type than default order
2020-12-03 08:30:07 +01:00
RadWolfie
93a3a3b35c input: change listing to target specific type than default order 2020-12-03 00:06:14 -06:00
PatrickvL
3a7b233199
Merge pull request #2052 from LukeUsher/remove-3925-hacks
remove 3925 fog/alpha hacks
2020-11-29 17:59:35 +01:00
Luke Usher
764304c0ca
Merge pull request #2055 from CookiePLMonster/fix-completion-callback
Preserve original IO status block and context for ApcRoutine
2020-11-29 14:07:22 +00:00
Silent
0411f27c65
Preserve original IO status block and context for ApcRoutine
Fixes cases where guest's APC routine/completion callback
does not receive the original IO status block variable,
but it assumed it did (it's allowed as per WinAPI docs).

Fixes Project Gotham Racing deadlocking after intro movies
2020-11-29 11:51:18 +01:00
PatrickvL
8415397067
Merge pull request #2053 from LukeUsher/improve-texturestate-mappings
rework texturestate mapping to be more sane + fix unmapped get
2020-11-28 20:12:48 +01:00
Luke Usher
a99d3f923a
Update TextureStates.cpp 2020-11-28 18:13:41 +00:00
Luke Usher
6c0bb86336 rework texturestate mapping to be more sane + fix unmapped get 2020-11-28 17:39:22 +00:00
Luke Usher
6915ccb027 remove 3925 fog/alpha hacks 2020-11-28 14:29:05 +00:00
Luke Usher
8c986c2480
Merge pull request #2040 from NZJenkins/z_fixes
Z fixes
2020-11-28 13:40:07 +00:00
PatrickvL
47795babfd
Merge pull request #2050 from CookiePLMonster/current-ps-fix
Modernize DxbxUpdateActivePixelShader
2020-11-28 09:14:46 +01:00
Silent
64672ddb4b
Modernize DxbxUpdateActivePixelShader
Fixes redundant constant setting, leaking pixel shader handle
and generally tidies up the code
2020-11-28 00:39:01 +01:00
Luke Usher
362c93801f
Merge pull request #2048 from CookiePLMonster/vertex-stream-cache-optimization
Optimize vertex stream cache for partial buffer access
2020-11-27 07:56:15 +00:00
PatrickvL
246d1fa3fe
Merge pull request #2049 from LukeUsher/renderstate-table-4034
update renderstate table with 4034 findings
2020-11-26 22:09:23 +01:00
Silent
2480582b0c
Optimize vertex stream cache for partial buffer access
Drastically reduces the amount of copied and converted data in cases
where any of the following apply:
* BaseVertexIndex is not 0
* LowIndex is not 0
* dwStartVertex is not 0

Also potentially fixes an issue where data past an indexed
vertex buffer was hashed and converted, leading to
potential false positives on dirty checks, maybe more.
2020-11-26 21:20:15 +01:00
Luke Usher
2324b798ab
Update XbConvert.cpp 2020-11-26 19:48:14 +00:00
Luke Usher
1aac347af9 update renderstate table with 4034 findings 2020-11-26 19:02:44 +00:00
PatrickvL
d748d3d4f2 Removed needless externs 2020-11-26 00:44:08 +01:00
PatrickvL
698719d5ad Moved g_RenderUpscaleFactor declaration to Direct3D9.cpp (the only file where it's used).
Introduced g_RenderTargetUpscaleFactor and update it in CxbxImpl_SetRenderTarget.
Where possible, incorporate g_RenderTargetUpscaleFactor once in X and Y scaling factors.
2020-11-25 22:08:04 +01:00
Anthony
d1596da695 Resolve the rendertarget upscale factor once 2020-11-25 22:08:04 +01:00
Anthony
7268219f5e Fix rendering to a non-upscaled rendertarget when upscaling is enabled
Test case: JSRF character select with upscaling
Rename RenderScaleFactor to RenderUpscaleFactor
2020-11-25 22:08:04 +01:00
Anthony
95b97b0502 - Calculate Z matching D3D9 docs (combined with Xbox depth scaling)
- Normalize Z from either (0, 1) or (0, zbuffer depth)
2020-11-25 22:07:03 +01:00
PatrickvL
b2ca28198e
Merge pull request #2044 from LukeUsher/create-surface-as-texture
d3d: wrap surfaces in textures
2020-11-25 22:05:09 +01:00
PatrickvL
eca9c330c5
Merge pull request #2045 from CookiePLMonster/palette-fixes
Palette fixes
2020-11-25 21:35:04 +01:00
PatrickvL
beac314243 Processed review remarks 2020-11-25 21:33:46 +01:00
Silent
7af503b90c
Do not try to resolve the palettized texture if there is no palette bound
Fixes a crash in DRIV3R
2020-11-25 20:39:03 +01:00
Luke Usher
ec6987d17f
Merge pull request #2041 from Blackbird88/master
Added "Silent (CookiePLMonster)"
2020-11-25 07:49:37 +00:00
Silent
4d8c4fbb68
Fix D3DDevice_SetPalette and D3DDevice_SetPalette_4 not calling to guest code
Fixes memory leaks in SetPalette functions, as they are now able
to reference count and destroy palette resources.
Also fixes a very poor SetPalette_4 LTCG function
2020-11-24 20:04:53 +01:00
Luke Usher
e0b62dde9d d3d: experimental creation of surfaces as textures 2020-11-24 17:06:53 +00:00
Silent
36e6349de5
Fix a wrong NestedCallCounter in D3DDevice_SetRenderTarget_0 2020-11-24 18:04:49 +01:00
Blackbird88
8c3d1bcdfa
Added "Silent (CookiePLMonster)" 2020-11-24 13:07:40 +01:00
RadWolfie
55da0a278b
Merge pull request #2038 from RadWolfie/loader-fix
Fix free up address range's system allocated
2020-11-22 02:26:09 -06:00
RadWolfie
e424d05252 fix couple variable types usage 2020-11-22 01:50:57 -06:00
RadWolfie
a08145b0c2 loader: fix input for what system need to be free up reserve address ranges 2020-11-22 01:40:42 -06:00
Luke Usher
21c27b416f
Merge pull request #2032 from RadWolfie/dsound-fixes
Fix CDirectSoundStream_GetStatus for difference output over time
2020-11-21 12:37:45 +00:00
Luke Usher
9d714c4488
Merge pull request #2033 from NZJenkins/viewport_fixes2
Improve viewport calculations
2020-11-21 12:37:19 +00:00
Luke Usher
9ebdef8502
Merge pull request #2037 from ergo720/fix_loader_wine
Allow cxbxr to work again with wine under Linux
2020-11-21 12:36:47 +00:00
Anthony
46ec7516fa Improve viewport calculations and 2D rendering
- SetViewport tracks the Xbox viewport values instead of setting the viewport,
so we can calculate what we need from them
- Rework GetViewportOffsetAndScale and scaling methods
- Vertex shader programs do not depend on D3D9 viewport to transform verts
- Account for backbuffer scale
- Add some D3DSWAP flags and LOG_TEST_CASE for unhandled usage
2020-11-21 23:41:16 +13:00
ergo720
c566836f42 Allow the cxbxr to work again with wine under Linux 2020-11-20 18:59:48 +01:00