Robin Kertels
4bcabe8d46
[d3d9] Return 0 if any vertex decl element can't be represented as fvf
2022-10-12 23:07:23 +01:00
Robin Kertels
7090105573
[d3d9] Remove declaration fvf mapping log spam
2022-10-12 23:07:23 +01:00
Robin Kertels
2b964f0c67
[d3d9] Make MapD3DDeclToFvf more readable
...
All branches return, so we might as well
give it a bit more room to breath.
2022-10-12 23:07:23 +01:00
Philip Rebohle
bd7d2aac71
[dxgi] Get rid of NotifyModeChange method
...
Was only used for the FPS limiter.
2022-10-07 13:25:56 +02:00
Vinjul1704
038ed23a5d
[util] Force SM1 for the Escape from Tarkov launcher
2022-10-06 21:32:19 +02:00
Joshua Ashton
fa45e5838e
[util] Fix tzcnt on ARM64 + Clang
...
This needed brackets around this conditional.
2022-10-05 19:01:05 +01:00
Philip Rebohle
ab622760a0
[dxbc] Emit new block only after emitting switch instruction
...
Otherwise emitting the OpSwitch will reset the block ID, which
is not desireable. Fixes #2975 .
2022-10-04 21:00:50 +02:00
Blisto91
f8bd19f210
[util] Cap Sonic Adventure 2 to 60 fps
2022-09-30 19:14:59 -02:30
Adam Jereczek
b2ad25755a
[d3d9] Fix for missing restriction check in ProcessVertices
...
Co-authored-by: aroztkow <aneta.roztkowska@intel.com>
2022-09-28 12:10:41 -02:30
Joshua Ashton
49854dbfba
[d3d9] Saturate viewport depth range
...
Viewport depth range in D3D9 is clamped at 0-1, same as OpenGL.
Drivers like RADV, etc support VK_EXT_depth_range_unrestricted,
which makes the regular UB of this actually work -- which isn't what
we want.
We also don't enable VK_EXT_depth_range_unrestricted, so we shouldn't
be setting depth ranges outside of the 0-1 bounds anyway.
Closes : #2960
2022-09-27 18:58:40 -02:30
Georg Lehmann
50857537d6
[d3d9] Use D32 not D32_S8 when upgrading formats without stencil aspect.
2022-09-27 18:58:32 +01:00
Georg Lehmann
a9bdea72e9
[d3d9] Clamp Dref to [0.0, 1.0] if the texture is emulated UNORM
2022-09-26 21:39:51 +01:00
Georg Lehmann
6fe96d7d82
[dxso] Support clamping Dref.
2022-09-26 21:39:51 +01:00
Georg Lehmann
5684e29718
[d3d9] Track if a texture is upgraded to D32f
2022-09-26 21:39:51 +01:00
Georg Lehmann
6188ffa23a
[d3d9] Add a config option for D24 -> D32
2022-09-26 21:39:51 +01:00
Georg Lehmann
7552cfe62a
[dxso] Always lower projection
2022-09-26 21:39:51 +01:00
Philip Rebohle
f1f8d45fcd
[dxvk] Rework allocation logic for large resources
...
This may reduce internal fragmentation with very large resources.
We previously changed behaviour to not do this in order to reduce memory
pressure in the average case, however by trying to suballocate from existing
chunks and falling back to a dedicated allocation on failure, rather than
allocating a new chunk, we can mostly avoid that situation.
2022-09-24 17:06:00 +02:00
Philip Rebohle
15588004b4
[dxvk] Bump memory chunk size to 256 MiB.
2022-09-24 17:06:00 +02:00
Joshua Ashton
f2950953e0
[d3d9] Avoid depth degenerate viewports
2022-09-23 13:26:50 +01:00
Joshua Ashton
d221bb7a9c
[d3d9] Add ID3D9VkInteropDevice
...
Provides access to the device and instance handles
as well as the queue that is used for rendering.
2022-09-22 17:58:54 +01:00
Joshua Ashton
e976218e17
[d3d9] Make GetDXVKDevice return a const Rc reference
...
Avoids some useless reffing.
2022-09-22 17:58:54 +01:00
Joshua Ashton
ac13112619
[d3d9] Add ID3D9VkInteropTexture
...
Provides access to the backing resource of a D3D9 texture.
2022-09-22 17:58:54 +01:00
Joshua Ashton
ae2465079e
[d3d9] Add ID3D9VkInteropInterface
...
Allows getting the VkInstance handle from a IDirect3D9 interface,
as well as VkPhysicalDevices from adapter ordinals.
2022-09-22 17:58:54 +01:00
Joshie
1451032b83
[d3d9] Minor cleanups in vertex declaration code ( #2950 )
2022-09-22 09:46:51 +00:00
Krzysztof Dobrowolski
1e1ef8f1bd
[d3d9] Fix for missing mapping of VertexElements declarations to FVF bits
...
When Vertex declaration is created by CreateVertexDeclaration
and SetFVF is not called then GetFVF returns 0.
This code change implements mapping of D3D declarations to FVF mask
and sets it if FVF was not set previously.
2022-09-22 08:41:40 +00:00
Michał Pyrzowski
82ebc29e18
[dxso] Fix for illegal OpCompositeConstruct while translating Crs opcode
...
During the translation of the Crs opcode to SPIR-V there is an assumption that the result type is a composite type. This is not always true. If the result is a scalar type the translation adds an OpCompositeConstruct with a scalar result type. This is a spec violation.
This change checks if the result type is a composite type and does not add the OpCompositeConstruct in case of scalar types.
2022-09-21 10:47:16 +00:00
Robin Kertels
5c22e2fbda
[util] Enable GTA IV config for Episodes from Liberty City
2022-09-19 15:11:01 +01:00
Robin Kertels
c759fb45aa
[util] Disable DF support for pretty mirrors in GTA IV
2022-09-19 15:11:01 +01:00
Robin Kertels
5962be44c6
[dxso] Define color inputs as centroids on SM3 too
2022-09-19 15:10:43 +01:00
Philip Rebohle
c4c1d413db
[meta] Update default config file
2022-09-19 16:09:48 +02:00
Philip Rebohle
a14ce8d1b0
[d3d11] Enable ROV support if corresponding Vulkan features are supported
2022-09-19 15:44:23 +02:00
Philip Rebohle
35a84053b5
[dxbc] Implement rasterizer ordered views
2022-09-19 15:44:23 +02:00
Philip Rebohle
8ca5edeacd
[dxbc] Decode rasterizer ordered flag for UAVs
2022-09-19 15:44:23 +02:00
Philip Rebohle
9532126f7c
[dxvk] Enable VK_EXT_fragment_shader_interlock
2022-09-19 15:44:23 +02:00
Philip Rebohle
0bb0c1e646
[util] Enable ignoreGraphicsBarriers for FFXV
...
Massively improves performance when VXAO is enabled.
2022-09-19 15:43:45 +02:00
Philip Rebohle
2a7706ba53
[dxbc] Do not enable SPV_KHR_shader_float_controls
...
This is core in Vulkan 1.2 and SPIR-V 1.5.
2022-09-18 02:27:03 +02:00
Philip Rebohle
9fa587e13c
[dxgi] Always use swap chain-local present count for frame statistics
...
Doesn't appear to match Windows behaviour, but there may be scenarios
when we can't query the current monitor. Statistics still need to be
consistent in this case.
See #2933 .
2022-09-17 05:01:36 +02:00
Philip Rebohle
5b6b9923ab
[dxbc] Write point size in vertex shaders
...
Silences some validation errors when point rendering is enabled.
2022-09-17 01:52:19 +02:00
Philip Rebohle
d93568f1a9
[dxbc] Don't emit built-in position as a block variable
...
This is no longer needed for interface matching.
2022-09-17 01:52:19 +02:00
xpander69
07094ac4f9
[util] Remove fps cap from Warhammer Online
...
This is a bit embarrassing. Added this config few days ago to counter the animation breakages, but now Return of Reckoning devs patched the executable on their side to cap the framerate by default. So the workaround is not needed anymore.
2022-09-16 21:32:49 +01:00
Philip Rebohle
4fb6c200d7
[d3d9] Use precise matrix-vector operations to compute vertex position
2022-09-16 20:04:01 +01:00
Philip Rebohle
b56ec10deb
[d3d9] Add helpers for precise matrix-vector products
2022-09-16 20:04:01 +01:00
Philip Rebohle
3a63c7cb31
[dxvk] Hide some more format compatibility validation errors
2022-09-16 17:24:33 +02:00
Philip Rebohle
67bd2b5e76
[dxgi] Report swap chain frame statistics
2022-09-16 12:49:42 +02:00
Philip Rebohle
fe3fc82d8e
[dxgi] Handle mode changes for frame statistics
2022-09-16 12:49:42 +02:00
Philip Rebohle
faaa6bf1df
[dxgi] Promote output stored in swap chain to IDXGIOutput1
2022-09-16 12:49:42 +02:00
Philip Rebohle
57af9e8760
[dxgi] Estimate vblank count for frame statistics
2022-09-16 12:49:42 +02:00
Philip Rebohle
c56a9b5a3f
[dxgi] Implement WaitForVBlank using new sleep helper
...
Not very accurate, but probably good enough if the display
refresh rate is known.
2022-09-16 12:49:42 +02:00
Philip Rebohle
3543673c5c
[util] Add helper to compute display refresh related stuff
2022-09-16 12:49:42 +02:00
Philip Rebohle
e019edc8c3
[util] Add helper to get time point from raw counter value
2022-09-16 12:49:42 +02:00