Joshua Ashton
a010397f34
[util] Move DecodeD3DColor to util
...
This will be used in the D3D11UserDefinedAnnotation implementation to handle PIX calls which contain a color.
2022-03-17 11:35:19 +01:00
Georg Lehmann
2550cff149
[build] Cleanup build system.
...
No changes except dropping support for msvc before 15.3.
2022-03-17 01:38:58 +00:00
Joshua Ashton
1f88ee595f
[d3d9] Don't expose D32 format
...
Not supported anywhere except REF device it seems... *sigh*
Supercedes: #2547
2022-03-16 19:11:16 +00:00
Robin Kertels
115385d1d9
[d3d9] Update buffer seq number in FlushBuffer
...
How did I miss this?!
2022-03-15 01:24:54 +00:00
Robin Kertels
5f4fc56226
[d3d9] Update texture sequence number AFTER using it
2022-03-13 17:13:00 +00:00
Robin Kertels
a6357a254d
[d3d9] Fix CS thread synchronization for directly mapped buffers
2022-03-13 17:13:00 +00:00
Philip Rebohle
caa83247d9
[d3d9] Mark backend image as shared for shared resources
...
Otherwise, the backend may not transition the image to the correct
layout after each submission.
2022-03-13 02:32:56 +01:00
Philip Rebohle
59e3c96976
[d3d9] Fix texture formats that can be exported
2022-03-12 22:24:05 +01:00
Derek Lesho
1d1d8adee6
[d3d9] Fix shared handle check for exporting images
...
Co-authored-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2022-03-12 21:35:42 +01:00
Derek Lesho
6640cc350c
[d3d9] Add support for shared IDirect3DTexture9 resources.
2022-03-12 16:23:06 +01:00
Derek Lesho
02d3e0d31f
[dxvk] Add shared handle access to DxvkImage memory.
...
Based off preliminary work from Josh.
2022-03-12 16:23:06 +01:00
Joshua Ashton
dc6c350cf2
[d3d9] Add fallthrough comment to SetRenderState
...
Silences a warning
2022-03-10 00:47:38 +01:00
Joshua Ashton
b2d96ee087
[d3d9] Fix fallthroughs in PickFormats
2022-03-10 00:47:38 +01:00
Joshua Ashton
53b9a723ac
[d3d9] Set initial dirty state flags
...
We had a bug where initial state values caused the data to not get sent to the backend.
Let's fix that going forward and dirty everything we possibly can on device creation.
2022-03-09 23:33:12 +00:00
Joshua Ashton
d4d4f0ca18
[d3d9] Fix default initialization of some state values
...
If we end up being the same as what we are, we don't dirty initially.
2022-03-09 23:33:08 +00:00
Robin Kertels
b42c07253e
[d3d9] Fix sysmem readback
2022-02-24 07:49:55 +00:00
Robin Kertels
a81c653b42
[d3d9] Fix synchronization after readback
2022-02-22 21:49:28 +00:00
Robin Kertels
29d8812709
[d3d9] Don't set NeedsReadback for POOL_SYSMEM textures
...
... or in SetRenderTarget because we always do readback for render targets.
2022-02-21 13:43:04 +00:00
Robin Kertels
b163a99bde
[d3d9] Clean up texture locking
...
We had two code paths that largely did the same.
2022-02-21 00:08:41 +00:00
Robin Kertels
dde83717f1
[d3d9] Rename WrittenByGPU to NeedsReadback
2022-02-21 00:08:41 +00:00
Robin Kertels
40444c1f50
[d3d9] Unify texture uploads
2022-02-21 00:08:41 +00:00
Robin Kertels
cf4c5c3422
[d3d9] Add option to disable direct buffer mapping
2022-02-20 03:30:03 +00:00
Robin Kertels
6d71eea516
[d3d9] Store buffer map mode in D3D9CommonBuffer
2022-02-20 03:30:03 +00:00
Robin Kertels
97ae14b6a0
[d3d9] Synchronize only to given sequence number in WaitForResources
2022-02-20 03:29:31 +00:00
Robin Kertels
917a8d00a2
[d3d9] Track last staging resource usage with a sequence number
2022-02-20 03:29:31 +00:00
Robin Kertels
c12cd1952c
[d3d9] Handle different mip chain lengths in UpdateTexture
2022-02-20 03:29:04 +00:00
Philip Rebohle
6ae5488157
[d3d9] Use initBuffer method
2022-02-17 20:58:31 +01:00
Philip Rebohle
752f98cf00
[d3d9] Use initImage to clear uninitialized image resources
2022-02-17 20:58:31 +01:00
Philip Rebohle
4d9b464f7c
[d3d9] Use new waitForResource method
2022-02-14 03:15:47 +01:00
Philip Rebohle
a03c038f03
[d3d9] Exit early in ProcessVertices if the vertex count is 0
...
We don't want to pass a zero-sized copy to the backend.
2022-02-13 02:08:19 +01:00
Philip Rebohle
d96c5a1076
[dxvk] Store DXVK device inside DxvkCsThread object
2022-02-13 02:07:48 +01:00
Philip Rebohle
37f3d9208b
[dxvk] Introduce sequence numbers for CS submissions
2022-02-11 18:17:34 +01:00
Robin Kertels
b220c8989b
[d3d9] Only enable FETCH4 for single channel formats
2022-01-28 21:34:18 +00:00
Georg Lehmann
4e6db51230
[d3d9] Fix float emulation detection.
...
ffs
2022-01-21 16:08:00 +01:00
Georg Lehmann
14df2f7251
[d3d9] Enable strict float emulation by default for new radv.
2022-01-20 23:47:41 +00:00
Georg Lehmann
f5744284eb
[d3d9] Dirty FF vertex shader if any D3D9VertexDeclFlags change.
...
The vertex shader depends on all of these in some way.
2022-01-10 22:06:15 +00:00
Christopher Egert
b1a6cbad7f
[d3d9] Update FFVS when D3DFVF_PSIZE is specified.
...
This fixes #2387
2022-01-10 20:05:41 +00:00
Robin Kertels
4cdee69bc9
[d3d9] Always upload all managed texture mips after AddDirtyBox call
...
Co-authored-by: Paul Gofman <gofmanp@gmail.com>
2022-01-10 18:55:08 +00:00
Robin Kertels
6c17b8801c
[d3d9] Add strict option to float emulation setting
2021-12-05 16:49:19 +00:00
Robin Kertels
804eca9cad
[d3d9] Respect shader defined constants for HWVP/PS buffer binding range
2021-11-30 01:57:22 +00:00
Robin Kertels
0061139652
[d3d9] Copy shader defined constants into SWVP UBO
...
Co-authored-by: Christopher Egert <cme3000@gmail.com>
Co-authored-by: Georg Lehmann <dadschoorse@gmail.com>
2021-11-30 01:57:22 +00:00
Robin Kertels
39039f9ac8
[dxso+d3d9] Clean up texture slots
2021-11-30 01:57:22 +00:00
Paul Gofman
b672c07a93
[d3d9] Send WM_ACTIVATEAPP messsage on WM_SIZE.
2021-11-30 01:48:24 +00:00
Joshua Ashton
4c0eee89e4
[d3d9] Use clamped LOD for creating new views
2021-11-11 23:53:38 +00:00
Joshua Ashton
c22dcdbaa3
[d3d9] Clamp LOD in calls to SetLOD
...
MSDN says this is clamped and returns the clamped value.
Closes : #1869
2021-11-11 23:52:35 +00:00
Joshua Ashton
5d4b7db9e6
[d3d9] Fix = alignent in CreateView
2021-11-11 23:51:59 +00:00
Joshua Ashton
8912c7adb0
[d3d9] Fix long driver/device names not being null terminated
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-22 02:58:53 +00:00
Robin Kertels
7f89fe1406
[d3d9+utils] Remove swvp hack
2021-10-15 10:54:18 +01:00
Robin Kertels
530f87f158
[d3d9+dxso] Rely on robustness for unset HW VS & PS constants
2021-10-15 10:54:18 +01:00
Robin Kertels
869f75895c
[d3d9+dxso] Switch constant buffer order
2021-10-15 10:54:18 +01:00
Robin Kertels
791d533a1d
[d3d9+dxso] Rely on robustness for unset SWVP constants
2021-10-15 10:54:18 +01:00
Robin Kertels
01f633289b
[d3d9] Use mapped slice when locking POOL_DEFAULT textures
...
Fixes an issue where the game would end up using the wrong
buffer slice if it previously mapped the same texture with DISCARD.
Fixes #2329
2021-10-15 10:46:40 +01:00
Robin Kertels
c8341e4be3
[d3d9] Fix lenient clears
2021-09-28 21:14:02 +01:00
Robin Kertels
c4449faf5a
[d3d9] Don't clamp clears to the size of RT 0
2021-09-27 21:57:15 +01:00
Robin Kertels
29ee1a74e6
Revert "[d3d9] Avoid depth degenerate viewports"
...
This reverts commit 78d22cc7a5
.
2021-09-27 14:55:49 +01:00
Georg Lehmann
827c7a892c
[util] Replace countof with std::size
2021-09-10 11:58:46 +01:00
Georg Lehmann
ed70f9a07c
[d3d9] Support unsupported formats in LockRect
2021-08-23 17:38:50 +01:00
Georg Lehmann
82d40f5bba
[d3d9] Return a pointer in GetUnsupportedFormatInfo
2021-08-23 17:38:50 +01:00
Georg Lehmann
04474b761b
[d3d9] Brain-dead gamma ramp validation
2021-08-23 15:41:59 +01:00
Georg Lehmann
41d0fcff95
[d3d9] Disable projection for PS 1.4
2021-08-19 01:47:42 -07:00
Robin Kertels
956b23c9e9
[d3d9] Use correct pitch to calculate buffer offset
2021-08-18 13:31:00 -07:00
Robin Kertels
97e91b6c0f
[d3d9] Respect pitch alignment in GetFrontBufferData
2021-08-18 13:31:00 -07:00
Joshua Ashton
3718cee9eb
[d3d9] Clean up texture type tracking
...
Additionally stops leaky pipelines on PS 1.x shaders from partial mask updates.
2021-08-17 07:02:56 -07:00
Joshua Ashton
64852f05c3
[d3d9] Track fixed function sampler bitfields
...
Cleans some stuff up a little bit and makes FF draws faster when this gets incorrectly invalidated.
2021-08-17 07:02:56 -07:00
Joshua Ashton
c6a4c41d20
[d3d9] Batch texture unbinding
2021-08-17 07:02:56 -07:00
Joshua Ashton
a346949304
[d3d9] Remove needless locks in SetTexture and SetSamplerState
2021-08-16 19:09:16 +01:00
Georg Lehmann
6103e3c800
[d3d9] Use BitMask helper
2021-08-16 08:49:46 -07:00
Joshua Ashton
b09b912797
[d3d9] Fix unbinding textures
...
Closes : #2236
2021-08-16 15:33:49 +01:00
Georg Lehmann
a75cf2f39d
[d3d9] Fix parital DS clears with full RT clear
2021-08-15 19:00:47 +00:00
Joshua Ashton
7acbd0f4e1
[d3d9] Expose D3DPMISCCAPS_CLIPTLVERTS
...
Matches what we actually do and fixes a Wine test
2021-08-11 12:44:28 +01:00
Joshua Ashton
a6156856e5
[d3d9] Don't check for NULL pViewport
...
This cannot be NULL.
2021-08-11 11:44:09 +00:00
Joshua Ashton
78d22cc7a5
[d3d9] Avoid depth degenerate viewports
2021-08-11 11:44:09 +00:00
Joshua Ashton
5f4f4d57df
[d3d9] Fix initial mapping of images written by GPU
2021-08-11 12:14:17 +01:00
Joshua Ashton
679d703efc
[d3d9] Fix upload race with default image mapping
...
Fixes a Wine test
2021-08-11 11:53:17 +02:00
Robin Kertels
60a7047550
[d3d9] Fix D3DLOCK_READONLY handling with evictManagedOnUnlock
2021-08-11 07:35:39 +00:00
Joshua Ashton
2c8099adf1
[d3d9] Use Texture2D for CommonTexture resolution
...
Using the generic texture type was a nice idea in theory, but some compilers did not give it a vtable as it was abstract, resulting in a crash here.
2021-08-11 04:25:29 +01:00
Joshua Ashton
ab7fc42f2f
[d3d9] Fix stateblock refcounting
2021-08-11 01:38:50 +01:00
Joshua Ashton
a1f0bb99ee
[d3d9] Cleanup D3D9DeviceEx members
2021-08-11 01:38:34 +01:00
Joshua Ashton
5e48035e99
[d3d9] Only bind textures if they are used by the shader
2021-08-11 01:08:13 +01:00
Joshua Ashton
c0c1565cba
[d3d9, dxso] Alias color and depth samplers and improve tracking
...
Takes me from 340 -> 460fps in A Hat in Time's main menu when CPU bound.
2021-08-10 23:46:03 +00:00
Joshua Ashton
3f78bde928
[d3d9] Optimize GetCommonTexture
2021-08-10 23:46:03 +00:00
Joshua Ashton
85468a5526
[d3d9] Add extra brackets to fetch4 filter check
2021-08-09 22:54:19 +00:00
Joshua Ashton
674f008e23
[d3d9] Use m_activeTexture mask for SRGB check
2021-08-09 22:54:19 +00:00
Joshua Ashton
1823a098a1
[d3d9] Clean up SetStateSamplerState
2021-08-09 22:54:19 +00:00
Joshua Ashton
ea4aa87336
[d3d9] Add unlikelies to rare vendor hacks
2021-08-09 22:54:19 +00:00
Georg Lehmann
1ea79cf136
[d3d9] Only respect relevant bits of D3DRS_STENCILREF
2021-08-09 22:54:06 +00:00
Georg Lehmann
152a08191c
[d3d9] Downgrade format fall back warnings to info
2021-08-09 13:17:43 +02:00
Joshua Ashton
abba425ed0
[d3d9] Optimize MarkTextureBindingDirty with tzcnt loop of m_activeTextures
2021-08-09 09:54:12 +00:00
Joshua Ashton
242b7b6d9c
[d3d9, dxso] Remove AlphaTestEnable spec constant
...
Go based on the func we already have. Avoids wasting a spec const.
2021-08-09 09:52:07 +00:00
Georg Lehmann
ada463badc
[d3d9] Mark mips as dirty on Clear if needed
2021-08-08 10:27:43 +00:00
Georg Lehmann
92deba0310
[d3d9] Implement D3DTOP_BLENDTEXTUREALPHAPM
2021-08-08 10:12:40 +00:00
Georg Lehmann
9162aa5fdf
[d3d9] Captured NULL vertex declarations are not applied
2021-08-08 08:50:00 +00:00
Georg Lehmann
28a07ef445
[d3d9] Validate vertex declaration on draws
2021-08-08 08:50:00 +00:00
Georg Lehmann
8c0003552c
[d3d9] Reject depth stencil StrechRect during an active scene
2021-08-08 08:50:00 +00:00
Georg Lehmann
09e5939502
[d3d9] Reject 2 BeginScene + EndScene without Begin
2021-08-08 08:50:00 +00:00
Georg Lehmann
6071e998fd
[d3d9] Handle invalid modes in Device::Reset
2021-08-08 08:50:00 +00:00
Georg Lehmann
64c4eea922
[d3d9] Mark texture dirty on SetLod
2021-08-08 02:28:44 +00:00
Georg Lehmann
26516dc904
[d3d9] Fix ColorFill with OffscreenPlainSurface
2021-08-08 02:15:06 +00:00
Joshua Ashton
fd50eae5c2
[d3d9] Optimize framebuffer binding with RT mask
2021-08-08 02:14:11 +00:00
Joshua Ashton
2f22c1b53d
[d3d9] Optimize clears with rt mask and better ref tracking
2021-08-08 02:14:11 +00:00
Joshua Ashton
072d3a039e
[d3d9] Track bound RTs
...
This also improves active RT hazard tracking by also accounting for NULL
2021-08-08 02:14:11 +00:00
Joshua Ashton
e0f9ebf695
[d3d9] Common buffer header cleanups and docs
2021-08-08 02:14:11 +00:00
Joshua Ashton
ee11e1af58
[d3d9] Minor buffer code-style cleanups
2021-08-08 02:14:11 +00:00
Joshua Ashton
b1b1524737
[d3d9] Adapter cleanups
2021-08-08 02:14:11 +00:00
Joshua Ashton
da411c8a48
[d3d9] Move m_lod after m_subresources
2021-08-08 02:14:11 +00:00
Joshua Ashton
4a569918c0
[d3d9] Track NULL state per-subresource
2021-08-08 02:14:11 +00:00
Joshua Ashton
d6bc355782
[d3d9] Fix code-style of D3D9Subresource and inline
2021-08-08 02:14:11 +00:00
Joshua Ashton
f4ce795fe7
[d3d9] Do a little packing of subresource members
2021-08-08 02:14:11 +00:00
Joshua Ashton
d922e261e8
[d3d9] Make D3D9_COMMON_TEXTURE_DESC smaller
2021-08-08 02:14:11 +00:00
Joshua Ashton
3592d7b48f
[d3d9] Return const buffer references in D3D9CommonBuffer
...
Avoids some needless refcounting
2021-08-08 02:14:11 +00:00
Joshua Ashton
fb7035f16a
[d3d9] Remove D3D9CommonBuffer::GetDesc
...
We already have ::Desc()
2021-08-08 02:14:11 +00:00
Joshua Ashton
750639d3b6
[d3d9] Return const view references in D3D9Subresource
2021-08-08 02:14:11 +00:00
Joshua Ashton
3cbac8923f
[d3d9] Return const refs for image/buffers + format mapping in CommonTexture
...
Avoids needless Rc ref counts and copies of that fairly large structure.
2021-08-08 02:14:11 +00:00
Georg Lehmann
23873cbb57
[d3d9] Disable primitive restart
2021-08-08 02:05:27 +00:00
Georg Lehmann
fdc2e2e78f
[d3d9] Fix NEVER alpha testing
2021-08-07 21:54:30 +00:00
Georg Lehmann
be3c248c8b
[d3d9] Don't mark mips as dirty when the texture doesn't have automatic mips
2021-08-07 21:53:34 +00:00
Georg Lehmann
973678e6bf
[d3d9] Only look at the last bit for D3DSAMP_SRGBTEXTURE
2021-08-07 13:09:13 +00:00
Georg Lehmann
a1fbcf35de
[d3d9] Ignore clear with Count == 0 and non-NULL rect
2021-08-06 18:54:17 +00:00
Robin Kertels
7873bebaf2
[d3d9] Only check range overlap if the buffer is not directly mapped
2021-07-28 16:57:02 +00:00
Joshua Ashton
b8a4b85c48
[d3d9] Fix clearing render targets on device reset
2021-07-26 14:35:48 +02:00
Robin Kertels
b4e6f81cb5
[d3d9] Respect aligned pitch when using initial data
2021-07-24 19:41:59 +00:00
Robin Kertels
6ba3d2f9d4
[d3d9] Set correct usage flags for large temporary staging buffers
2021-07-23 13:36:21 +00:00
Robin Kertels
fa279eb8ad
[d3d9] Ignore NO_DIRTY_UPDATE for POOL_DEFAULT resources
...
Respecting it breaks Senren Banka because we never upload the texture.
2021-07-23 13:36:21 +00:00
Robin Kertels
584e1515b1
[d3d9] Fix pitch when copying straight from mapping buffer
2021-07-23 13:36:21 +00:00
Robin Kertels
34101dcf26
[d3d9] Fix UpdateTexture extent
...
Same as 5f1629f2cb
2021-07-23 13:36:21 +00:00
Joshua Ashton
d3112c320b
[d3d9] Add dirty texture tracking
...
Reduces overhead from re-binding and unnecessary binding (srgb changes) in L4D2.
I go from about 750 -> 850-900 fps in c1m2_streets with this change.
2021-07-14 20:38:49 +00:00
Robin Kertels
8eeff90e0a
[d3d9] Only use staging buffers for uploads once we've stalled on the resource
2021-07-14 19:26:25 +00:00
Robin Kertels
b83261b759
[d3d9] Adjust waiting in LockBuffer to staging buffer upload
...
Now that we're uploading using a staging buffer,
we don't need to wait for non default buffers.
We should also respect READONLY for WRITEONLY buffers
(yes, it sounds dumb) because Nostale relies on that.
2021-07-14 19:26:25 +00:00
Robin Kertels
ed24c17d53
[d3d9] Validate srcRect and dstPoint in UpdateSurface
2021-07-14 18:33:38 +00:00
Georg Lehmann
b3b2f0921c
[d3d9] Never init pSharedHandle.
...
This parameter has three different meanings if it's non NULL:
- if Pool is D3DPOOL_SYSTEMMEM it's a host pointer for inital data
- if it points to a nullptr it's a output handle
- if it's a pointer to non NULL pointer it's an import handle
2021-07-14 15:29:46 +00:00
Robin Kertels
5f1629f2cb
[d3d9] Fix FlushImage extent for smaller mip maps
2021-07-10 16:23:56 +00:00
Robin Kertels
9f0775b1ac
[d3d9] Always use cached memory for texture mapping buffers
...
We read from that memory when uploading the texture.
Fixes performance in Oblivion.
2021-07-08 21:42:12 +00:00
Joshua Ashton
c7f8267f98
[d3d9] Fix NV12 conversion
...
Froggy is the right color now
2021-07-08 22:36:59 -07:00
Connor Abbott
9579132942
[d3d9] Remove extra spaces in def file
...
wrc is pickier about this than windres and refuses to accept it.
2021-07-03 14:28:28 +02:00
Connor Abbott
aae0e57a46
Don't add def file as an object
...
This is unnecessary even on mingw, and leads to duplicating the .def
file on the linking command line which winegcc complains about.
2021-07-03 14:28:28 +02:00
Robin Kertels
309284e7dc
[d3d9] Respect 4 byte pitch when reading back texture
2021-07-01 05:47:44 -07:00
Robin Kertels
c43618d19f
[d3d9] Fix texture dirty box clearing
...
- Fix interleaved locks with evictManagedOnUnlock
We need to make sure there are no other subresources of a texture locked
before clearing the dirty box. Otherwise the data for those other subresources
won't get copied into VRAM.
- Clear dirty box regardless of texture pool
Otherwise we keep repacking and copying the whole texture
for every single lock. This causes performance problems
in Star Wars: The Old Republic.
2021-07-01 05:47:44 -07:00
Philip Rebohle
2ff8b42fff
[d3d9] Enable robustBufferAccess2 feature if available
...
Tightens some out-of-bound rules around vertex attributes.
2021-06-29 18:35:47 -07:00
Philip Rebohle
96f5641a7e
[d3d9] Ensure that the bound UP vertex buffer region is large enough
...
If the buffer size is less than (vertexCount * stride), the last vertex
may be considered out-of-bounds, even if all attributes are included in
the vertex.
Fixes #2131 .
2021-06-29 18:35:47 -07:00
Philip Rebohle
cd8a2bcfcd
[dxvk] Use custom sync primitives
2021-06-29 00:51:20 +02:00
Philip Rebohle
a14884c652
[dxvk] Add destination offset/extent to copyDepthStencilImageToPackedBuffer
...
Needed to support partial copies between buffers and depth-stencil images.
2021-06-24 21:07:47 +02:00
Philip Rebohle
ba4938e201
[dxvk] Add slice alignment to copyImageToBuffer
2021-06-24 21:07:47 +02:00
Philip Rebohle
4840cdaf8c
[dxvk] Add slice alignment to copyBufferToImage
2021-06-24 21:07:45 +02:00
Robin Kertels
8a93bbd8fa
[d3d9] Make sure clear extent does not exceed rt size
2021-06-19 16:11:11 -07:00
Robin Kertels
d7c4afbeba
[d3d9] Pass correct element size to texture converter
2021-06-19 10:43:31 -07:00
Philip Rebohle
4f5f85925b
[d3d9] Add frame rate limiter and d3d9.maxFrameRate option
2021-06-12 13:50:08 +02:00
Robin Kertels
6f468ec5e0
[d3d9] Fix texture converter
2021-06-12 03:48:01 -07:00
Joshua Ashton
f1a9d72d38
[d3d9] Don't scale z to [0, 1] for POSITIONT
...
I originally thought the depth clipping region was always [0, 1] when I first implemented this nearly 2 years ago.
The depth clipping region is already in the viewport's depth range, so just don't do anything here if we are z-testing.
( We still need to keep the flattening around for when ztest is disabled though :( )
Fixes : #2056
2021-06-06 09:31:01 -07:00
Joshua Ashton
747834e9b0
[d3d9] Bump frame id before presentation
2021-06-01 18:31:29 +02:00
Joshua Ashton
fcb7639106
[d3d9] Synchronize frame latency on latency change
2021-06-01 18:16:35 +02:00
Joshua Ashton
787de33022
[d3d9] Sync frame latency after presentation
2021-06-01 18:16:35 +02:00
Philip Rebohle
0b88d0deab
[vulkan] Remove getSyncSemaphores from presenter
...
Instead, return the semaphores in acquireNextImage.
2021-06-01 04:32:50 +02:00
Philip Rebohle
253884a8c7
[vulkan] Remove fence from presenter
...
We don't use these anywhere.
2021-06-01 03:51:16 +02:00
Philip Rebohle
0af7229b8e
[util] Restore display modes of all monitors in RestoreMonitorDisplayMode
...
Fixes #2064 .
2021-06-01 01:48:12 +02:00
Philip Rebohle
6462174c13
[dxvk] Support multi-plane formats in copyImageToBuffer
2021-05-30 19:42:43 +02:00
Philip Rebohle
86542248df
[dxvk] Support multi-plane formats in copyBufferToImage
2021-05-30 19:42:43 +02:00
Joshua Ashton
0520ce9448
[d3d9] Treat largest element in Stream 0 as vertex decl size
...
Closes #2059
2021-05-13 01:32:56 +01:00
Joshua Ashton
f0c1e89443
[d3d9] Handle zero-sized draws
...
These return S_OK, because ofc they do.
2021-05-05 19:25:46 +01:00
Joshua Ashton
0f52c85d21
[d3d9] Account for vertex declaration size for UP draws
...
The stride may not give us the full picture here as the stride
may not encompass the vertex declaration entirely.
Consider a vertex declaration of size 20, and a stride of 12,
we may not have covered the whole range of space the draw wants with
VertexCount * Stride.
Some games such as FF13 Lightning Returns have two float3s in the vertex decl
and draw two triangles with the last float being out of bounds. This causes
the whole vertex element to be set to 0 on NVIDIA which breaks their fullscreen passes.
Instead, take (VertexCount - 1) * Stride + VertexDeclSize for the buffer size
and pad with 0s outside of the VertexCount * Stride range.
Closes : #2046
Closes : #1908
2021-05-05 19:25:46 +01:00
Joshua Ashton
4a4b96611d
[d3d9] Only log WaitForVBlank stub once
2021-04-30 19:33:24 +01:00
Robin Kertels
525fd53bbc
[d3d9] Fix FlushBuffer
...
Use stored mapped slice and use correct dst offset.
2021-04-23 18:06:29 +01:00
Robin Kertels
da23771df4
[d3d9] Remove unused variable
2021-04-23 18:06:29 +01:00
Robin Kertels
13f53531e5
[d3d9] Fix offset in UpdateSurface
2021-04-22 20:18:50 +01:00
Robin Kertels
0bc8b0b33a
[d3d9] Align pitch to 4
2021-04-22 17:44:58 +01:00
Robin Kertels
2ba433bbd8
[d3d9+util] Remove option to disable implicit discard
2021-04-22 17:44:58 +01:00
Robin Kertels
03f5893011
[d3d9] Remove implicit discard
2021-04-22 17:44:58 +01:00
Robin Kertels
b9512a4063
[d3d9] Only copy dirty parts of managed/sysmem resources
2021-04-22 17:44:58 +01:00
Robin Kertels
4261ff6ec1
[d3d9] Use staging buffer for managed copies
2021-04-22 17:44:58 +01:00
Robin Kertels
bb11d7dee8
[d3d9] Refactor AllocUpBuffer so it can be used for managed uploads
2021-04-22 17:44:58 +01:00
Robin Kertels
8cc0c9a0f1
[d3d9] Clamp dirty buffer range
...
And always maintain dirty range.
2021-04-22 17:44:58 +01:00
Georg Lehmann
77d80acf75
[d3d9] respect Vector4 alignment in UpdateStateConstants
2021-04-15 22:25:11 +01:00
Georg Lehmann
1ed6edf096
[d3d9] respect Vector4 alignment in GetShaderConstants
2021-04-15 22:25:11 +01:00
Georg Lehmann
5d3b130ec8
[d3d9] respect Matrix4 alignment in ConvertMatrix
2021-04-15 22:25:11 +01:00
Philip Rebohle
c3feea2bce
[dxvk] Make samplerAnisotropy feature optional
2021-04-04 20:01:30 +01:00
Philip Rebohle
0a787683b6
[dxvk] Don't require shaderStorageImageExtendedFormats
...
No real reason to, not sure why we did this in the first place.
2021-04-04 20:01:30 +01:00
Robin Kertels
9d0c46b9c6
[d3d9] FF: use correct vector type when dealing with tex coords
2021-04-04 16:31:39 +01:00
Robin Kertels
d17f62902d
[d3d9+util] Remove AllowLockFlagReadonly option
2021-03-22 17:43:07 +00:00
Robin Kertels
dba7525954
[d3d9] Mark non default resources as dirty by default
2021-03-22 17:43:07 +00:00
Robin Kertels
8159e87331
[d3d9] Fix some issues with dirty box handling
...
- The dst texture in UpdateSurface must be in D3DPOOL_DEFAULT
which doesn't do dirty tracking. So we don't need to
call AddDirtyBox there.
- Clear DirtyBox when we flush managed textures with EvictManagedOnUnlock.
- Do nothing in AddDirtyBox for D3DPOOL_DEFAULT textures
2021-03-22 17:43:07 +00:00
Robin Kertels
cb5f8aa392
[d3d9] Properly scale dirty box
2021-03-22 17:43:07 +00:00
Robin Kertels
3f57a3a8cc
[d3d9] Use buffer DirtyRange to track managed uploads
2021-03-22 17:43:07 +00:00
Robin Kertels
4f45e74d96
[d3d9] Improve naming of texture dirty flag and dirty boxes
2021-03-22 17:43:07 +00:00
Robin Kertels
6f139791d2
[d3d9] Improve naming of buffer flags and ranges
2021-03-22 17:43:07 +00:00
Philip Rebohle
e3b92bcfac
[dxvk] Add conservative rasterization mode to rasterizer state
2021-03-13 20:22:32 +01:00
Joshua Ashton
0367bf95c4
[build] MSVC check cleanup
2021-03-03 18:57:42 +01:00
Rémi Bernon
1589f516c9
[d3d9] Convert window position relative to its parent.
2021-03-03 15:49:52 +00:00
Joshua Ashton
31063252eb
[d3d9] Don't implicit discard if read locked
2021-02-28 15:06:23 +00:00
Joshua Ashton
741070785a
[d3d9] Allow implicit discard for all backed buffers
2021-02-28 13:01:00 +00:00
Joshua Ashton
6bb271b299
[d3d9] Cleanup options code
2021-02-27 20:35:37 +00:00
Joshua Ashton
8c2ec5d9c9
[d3d9] Clean up resource locking code
2021-02-27 20:15:39 +00:00
Joshua Ashton
e8fc7ea23a
[d3d9] Add d3d9.allowImplicitDiscard option
2021-02-27 20:08:57 +00:00
Joshua Ashton
50d223e614
[d3d9] Add option to use device local memory for constant buffers
...
Useful for testing performance.
2021-02-27 19:29:52 +00:00
Robin Kertels
eec4481ca0
[d3d9] Fix various issues in UpdateTexture
...
- Skip copies for empty or invalid rects
- align up the extent
- use util functions to slightly clean up the code
2021-02-27 17:31:15 +00:00
Philip Rebohle
12693b17f9
[d3d9] Use DxvkSwapchainBlitter for presentation
2021-02-27 14:54:14 +00:00
Philip Rebohle
dcf4599c98
[d3d9] Use ATTACHMENT_OPTIMAL layout for render targets
...
Significantly improves GPU-bound performance on RADV in a number of games.
2021-02-26 05:02:32 +00:00
Philip Rebohle
73a06aea72
[d3d9] Manually discard swap chain image view on present
2021-02-21 02:18:55 +01:00
Joshua Ashton
59816a71b9
Revert "[d3d9] Don't minimise in WM_ACTIVATEAPP"
...
Not needed as this was an FSHack bug.
This reverts commit d87200c4d9
.
2021-02-19 03:14:56 +00:00
Joshua Ashton
d87200c4d9
[d3d9] Don't minimise in WM_ACTIVATEAPP
...
Sometimes mode-setting jank can occur and technically we'd need to re-set the mode on the next present if the game gets actually minimised.
2021-02-15 17:29:45 +00:00
Robin Kertels
ec5c324643
[d3d9] Mark generated mip maps as dirty
2021-02-14 23:55:00 +00:00
Robin Kertels
021ffe7350
[d3d9] Regenerate auto mip gen textures in UpdateTexture
...
.. instead of copying them
2021-02-14 23:55:00 +00:00
Robin Kertels
338f6dfb0e
[d3d9] Track dirty regions for UpdateTexture
2021-02-14 23:55:00 +00:00
Philip Rebohle
4f184b3424
[d3d9] Mark images as shared if necessary
2021-02-14 04:00:02 +01:00
Joshua Ashton
fcaab6aa46
[d3d9] Expose adapter/backbuffer formats properly
...
Matches native behaviour in my testing.
2021-02-06 08:57:32 +00:00
Joshua Ashton
58d6f018bb
[d3d9] Allow A2R10G10B10 backbuffer format in Windowed
2021-02-06 08:43:37 +00:00
Philip Rebohle
01a511aa99
[dxvk,dxgi,d3d9] Fix shader spec constant IDs
...
These changed after changing the render target output swizzle stuff.
2021-01-29 16:46:01 +01:00
Joshua Ashton
0eec95843f
[d3d9] Fix warnings with query caching
2021-01-08 13:49:38 +00:00
Gabriel Ivăncescu
83f6400a07
d3d9: Send necessary messages for full-screen windows during WM_ACTIVATEAPP.
2021-01-08 13:40:34 +00:00
Robin Kertels
60a2aeb6ef
[d3d9] End query before the stall heuristic flush
2021-01-07 21:19:28 +00:00
Robin Kertels
0f933fee8b
[d3d9] Extend query stall tracking to other query types
2021-01-07 21:19:28 +00:00
Robin Kertels
6554ca8f9e
[d3d9] Cache query data
2021-01-07 21:19:28 +00:00
Robin Kertels
6a54d86f25
[d3d9] Implement apitraceMode option
2020-12-14 16:51:19 +00:00
Robin Kertels
4b6632764f
Revert "[d3d9] Only use DEVICE_LOCAL memory for small dynamic buffers"
...
This reverts commit f3a82a0bcc
.
Apparently this makes other games slower. We need a different solution for TR: Legend.
2020-12-14 16:51:19 +00:00
Joshua Ashton
65635b23c1
[d3d9] Always slightly bias viewport, regardless of size
...
Since we got TRUNC_COORD on RADV, we always need to bias this now.
Closes : #1854
2020-12-14 03:51:49 +00:00
Joshua Ashton
09043ddd16
[dxso] Implement option for alpha test wiggle room
2020-11-26 12:15:03 +00:00
Joshua Ashton
6a63f4af56
[d3d9] Enable null descriptors for D3D9
2020-11-24 16:17:36 +00:00
Joshua Ashton
c3fdc768cf
[d3d9] Only define the push constants we use
...
Fixes #1742
2020-09-26 06:39:52 +01:00
Joshua Ashton
753fcd5649
[d3d9] Only read point scale push constant in fixed function
...
Otherwise it doesn't exist and we're reading garbage/non-existant data.
Even though this gets spec-constanted away via an opSelect, some drivers don't like this
2020-09-26 06:39:52 +01:00
Joshua Ashton
e4bca7a42f
[d3d9] Handle specular fog factor for fixed function
...
Also handle POSITION_T shenanigans
Closes #1771
2020-09-26 06:06:06 +01:00
Joshua Ashton
dc392f7cfa
[d3d9] Fix typo declaring fixed func fog inputs
2020-09-26 04:03:11 +01:00
Joshua Ashton
3e65c2bb87
[d3d9] Reduce copying around of shader metadata at Create time
2020-09-11 21:49:14 +01:00
ishitatsuyuki
bb85a4caa8
Handle non-ASCII characters properly in paths
2020-09-10 15:56:38 +02:00
Joshua Ashton
743f309253
[d3d9] Implement YV12 video format
...
Needed for #1726 otherwise it will upload dump that upload garbage in a YUV2 texture.
2020-08-17 22:32:30 +01:00
Robin Kertels
89d36e1d7f
[d3d9] Handle edge cases around implicit discard
2020-08-15 05:45:01 +01:00
Joshua Ashton
d92660923a
[d3d9] Use VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT
2020-08-10 09:45:49 +02:00
Robin Kertels
b28a7353bb
[d3d9] Do implicit discard when locking system memory resources
2020-08-10 00:09:29 +01:00
Joshua Ashton
98c7da805b
[d3d9] Rename BT.703 to BT.709
...
Don't know how this typo got introduced.
Thanks to Ryao for finding the matrix and pointing this out.
2020-08-07 20:54:45 +01:00
Joshua Ashton
e2a26f2bc5
[d3d9] Optimize NV12 conversion to use a macropixel of [2, 1]
2020-08-07 10:56:26 +01:00
Joshua Ashton
9fe1b9d03f
[d3d9] Replace macropixel size with plane count
2020-08-07 10:56:26 +01:00
Joshua Ashton
2bf9f298af
[d3d9] Implement NV12 format conversion
2020-08-07 10:56:26 +01:00
Joshua Ashton
2cfd219024
[d3d9] Move some YUV helpers to common and cleanup YUY2 shader
2020-08-07 10:56:26 +01:00
Joshua Ashton
ad6b91d84a
[d3d9] Flush and synchronize to cs before format conversion
...
Fixes a race when DISCARD is used
2020-08-07 10:56:26 +01:00
Joshua Ashton
f1aa80dab9
[d3d9] Don't private reference additional swapchains
2020-08-07 10:56:26 +01:00
Biswapriyo Nath
3b52cad243
fix clang errors
...
File changes:
* meson.build: add -Wno-unused-private-field and -Wno-microsoft-exception-spec
option to suppress clang compiler warnings
* d3d9/d3d9_swvp_emu.h: include unordered_map for std::unordered_map
2020-07-21 11:41:28 +02:00
Robin Kertels
f3a82a0bcc
[d3d9] Only use DEVICE_LOCAL memory for small dynamic buffers
...
Tomb Raider Legend writes to multiple 128KB dynamic buffers
and one 512KB one every frame.
2020-07-20 18:36:20 +01:00
Robin Kertels
2714cb952d
[d3d9] Extend dirty tracking to render targets
...
Ensures we copy a dynamic default pool texture to its
mapping buffer after the device renders to it.
2020-07-20 18:36:20 +01:00
Robin Kertels
291f7e05bc
[d3d9] Fix uninitialized BufferHandle when discarding mapped buffer
...
Co-authored-by: Christopher Egert <cme3000@gmail.com>
2020-06-15 03:26:47 +01:00
Joshua Ashton
9525f53d00
[d3d9] Only enable FETCH4 when POINT sampling
...
Closes #1660
2020-06-14 00:38:36 +01:00
Joshua Ashton
67f01631fa
[d3d9] Clear dirty range when discarding buffers
2020-06-11 05:58:17 +01:00
Robin Kertels
7389da29be
[d3d9] Discard mapped buffer if it's currently in use
2020-06-11 05:53:33 +01:00
Robin Kertels
5d5ec2aa77
[d3d9] Remove IsUploading from CommonTexture
...
This was always true on subsequent Lock calls.
The first lock was handled by the 'freshly allocated fast path' anyway.
2020-06-11 05:53:33 +01:00
Joshua Ashton
e6ed8dab63
[d3d9] Perform tracking for preloaded managed resources
2020-06-11 05:53:33 +01:00
Joshua Ashton
7e72010302
[d3d9] Upload managed resource if needed before mip gen
2020-06-11 05:53:33 +01:00
Joshua Ashton
04397e5a7b
[d3d9] Mark mips as dirty when the filter changes
2020-06-11 05:53:33 +01:00
Joshua Ashton
f537474fe4
[d3d9] Add missing locks to mipmap auto gen
2020-06-11 05:53:33 +01:00
Joshua Ashton
b1bd3597a4
[d3d9] Implement PreLoad for buffers + textures
2020-06-11 05:53:33 +01:00
Joshua Ashton
68ae3f4376
[d3d9] Return D3D_OK when unlocking not locked textures
...
Matches D3D9 behaviour
2020-06-05 23:46:33 +01:00
Joshua Ashton
124023bac5
[d3d9] Add read-only check to uploading managed textures on Lock
2020-06-05 23:33:00 +01:00
Joshua Ashton
ed5cbb99b6
[d3d9] Mark managed for upload in Lock rather than Unlock
...
Fixes Nekopara properly.
Also refactor some locking checks
2020-06-05 23:29:23 +01:00
Joshua Ashton
86e8315416
[d3d9] Revert Nekopara hacks
2020-06-05 23:15:10 +01:00
Joshua Ashton
fa988be4aa
[d3d9] Improve MarkAllForUpload implementation
...
Only mark the bits we are actually using.
2020-06-05 02:40:41 +01:00