1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-09 13:46:08 +01:00
Commit Graph

247 Commits

Author SHA1 Message Date
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
Joshua Ashton
d39cf31189 [d3d9] Implement uploadAllManagedSubresources option
Nekopara locks mip 1, then unlocks mip 0 and expects it to upload all the mips.
2020-06-05 02:34:44 +01:00
Joshua Ashton
5558460853 [d3d9] Don't mark lock on DONOTWAIT path
Fixes some issues in some games using this feature.
2020-06-01 15:52:25 +01:00
Joshua Ashton
c03eaf2de7 [d3d9] Hook up auto gen mip filter 2020-05-27 10:12:43 +02:00
Joshua Ashton
7cd46e72e9 [dxvk] Add filter type to generateMipmaps 2020-05-27 10:12:43 +02:00
Joshua Ashton
3825d16a31 [d3d9] Move mip filter into common texture 2020-05-27 10:12:43 +02:00
Joshua Ashton
561254b51d [d3d9] Support RENDERTARGET and AUTOGENMIPMAP together
Fixes funky water in Trackmania
Closes #1642
2020-05-27 09:03:58 +01:00
Joshua Ashton
d8381dab8d [d3d9] Fix a typo when unmarking autogen mips 2020-05-26 18:57:28 +01:00
Joshua Ashton
1a920f44ea [d3d9] Rename GenerateMips to EmitGenerateMips 2020-05-26 18:50:34 +01:00
Joshua Ashton
fabe7b5d59 [d3d9] Check if needs mip gen in GenerateTextureMips
There could be duplicate indices!
2020-05-26 18:49:17 +01:00
Joshua Ashton
6c030afc95 [d3d9] Update device tracking when manually autogenning mips
Avoids some needless generations potentially.
2020-05-26 18:48:42 +01:00
Joshua Ashton
e57aea5749 [d3d9] Track and defer mipmap generations
Turns out we need to track this crap and generate at draw time and handle a bunch of other wacky cases for it...

Bah.

Fixes #1642
(The funky water.)
2020-05-26 18:42:53 +01:00
Joshua Ashton
b958473cc9 [d3d9] Move pLockedBox/Rect checks to subresource 2020-05-26 13:14:58 +01:00
Joshua Ashton
4c1deabcd3 [d3d9] Don't expose surfaces for autogenned mips 2020-05-26 13:11:24 +01:00
Joshua Ashton
a35df1c3b1 [d3d9] Fix AUTOGENMIPMAP not working in some instances
Closes #1642
2020-05-26 12:46:55 +01:00
Christopher Egert
67b1ee4f9b [d3d9] Only allow ColorFill on surfaces in D3DPOOL_DEFAULT
Both nine and native nvidia d3d9 seems to do this,
this fixes a crash in spacemail by xplsv.
2020-05-25 13:33:12 +01:00
Joshua Ashton
4d70d59ea4 [d3d9] Use base texture for subresource refs
Fixes a crash when running d3d9-triangle
2020-05-25 13:29:56 +01:00
Joshua Ashton
4e1ee5bf39 [d3d9] Normalize projection spec constant further
Only include those used in the pixel shader and are bound.
2020-05-25 06:13:21 +01:00
Joshua Ashton
8fdf9e67d3 [d3d9, dxso] Implement FETCH4 2020-05-25 06:13:21 +01:00
Joshua Ashton
8e7df31878 [d3d9] Correct resolve offset regions for intermediate StretchRect resolves
We don't want to use the dst info for these, given the blit will do that.

Partially fixes #1637
2020-05-22 11:13:07 +02:00
Joshua Ashton
e2ad3b1b20 [d3d9] Improve sampler anisotropy normalization 2020-05-21 08:58:39 +01:00
Christopher Egert
79feed9d89 [d3d9] Allow D3DFMT_NULL as RenderTargetFormat in CheckDepthStencilMatch
This partially fixes shadows in Timeshift.
2020-05-19 04:12:36 +01:00
Robin Kertels
724d0fc0b2 [d3d9] Set scissor to the viewport if that's smaller
Fixes #1608
2020-05-13 18:53:11 +01:00
Joshua Ashton
774f74cd36 [d3d9] Only dirty ff pixel shader if set texture is in PS binding range 2020-05-07 16:14:11 +01:00
Joshua Ashton
27b9736626 [d3d9] Dirty fixed function pixel shader on texture type change
Fixes #1603
2020-05-07 16:09:58 +01:00