1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

343 Commits

Author SHA1 Message Date
Philip Rebohle
9a8263f465
[dxvk] Implement vertex binding divisors
Uses VK_EXT_vertex_attribute_divisor when available.
2018-04-17 17:24:16 +02:00
Philip Rebohle
388fe02158
[hud] Added frametime graph
Enable with DXVK_HUD=frametimes.
2018-04-17 12:03:03 +02:00
Philip Rebohle
a4f9e5f0d5
[hud] Added line renderer 2018-04-17 10:01:06 +02:00
Philip Rebohle
8bfaae9350
[hud] Rename renderText -> render 2018-04-17 09:21:40 +02:00
Philip Rebohle
e38e1347d3
[hud] HudTextRenderer -> HudRenderer
Maintaining one class should be easier than creating
multiple renderer classes and having to switch between
them.
2018-04-17 09:20:18 +02:00
Philip Rebohle
6f3454842f
[dxvk] Increase dummy buffer size to max uniform buffer size 2018-04-16 23:40:41 +02:00
Philip Rebohle
327cd5ff30
[dxvk] Enable VK_EXT_vertex_attribute_divisor if available
We will use this extension in order to implement vertex
binding divisors other than 1 for per-instance attributes.
Will be *required* as soon as support by wine and Vulkan
drivers is widely available.
2018-04-16 17:33:55 +02:00
Philip Rebohle
08777e2c0e
[dxvk] Change stat couter type to uint64_t 2018-04-15 20:59:41 +02:00
Philip Rebohle
256645724b
[dxvk] Destroy old swap chain before creating a new one
We no longer use the 'oldSwapchain' member in the swap chain description
to replace an existing swap chain, but rather destroy it altogether and
create a new swap chain. While this is less than optimal, it might help
solve some swap chain-related issues such as #277.
2018-04-15 15:36:10 +02:00
Philip Rebohle
24f0528b6f
[dxvk] Print memory heap size in megabytes 2018-04-15 10:53:46 +02:00
ShadowsFriend
d1206a8d9d [dxvk] Added memory information to adapter info (#279) 2018-04-15 10:22:32 +02:00
Philip Rebohle
31ed6e5cd3
[dxvk] Move render target set comparison to DxvkRenderTargets 2018-04-15 03:01:52 +02:00
Philip Rebohle
d523405a5a
[dxvk] Implement bindRenderTargets method
An alternative to manually creating a framebuffer object and binding
it via bindFramebuffer. Future optmizations can use this to bring
down the number of redundant render pass changes.
2018-04-15 01:09:53 +02:00
Philip Rebohle
a6406e3b60
[dxvk] Recreate swap chain on presentation failure 2018-04-14 22:45:30 +02:00
Philip Rebohle
320cebb8f9
[dxvk] Improved memory allocation debug output 2018-04-14 13:03:14 +02:00
Philip Rebohle
8dfe7088fd
[dxvk] Fixed silly typo 2018-04-13 17:06:58 +02:00
Philip Rebohle
15fca0b0b1
[dxvk] Improved debug output when resource creation fails 2018-04-13 17:03:35 +02:00
Philip Rebohle
ebf474ae9e
[dxvk] Enable VK_KHR_sampler_mirror_clamp_to_edge
Fixes validation errors in The Witcher 3.
2018-04-13 13:46:20 +02:00
Philip Rebohle
56a1433d3f
[d3d11] ClearUnorderedAccessViewUInt: Create temp view if necessary
If this method is used to clear a view with a floating point format,
we need to create a compatible view with an integer format in order
to clear the resource with the correct value. Fixes some calls to
this function in Rise of the Tomb Raider and other games.
2018-04-12 23:31:15 +02:00
Philip Rebohle
9d84e1bfaa
[dxvk] Implement clearBufferView and clearImageView 2018-04-11 23:13:34 +02:00
Philip Rebohle
cce578d67a
[dxvk] Increase workgroup size for buffer clear shaders 2018-04-11 23:12:55 +02:00
Philip Rebohle
140dc27ea3
[dxvk] Create compute pipelines for meta clear ops 2018-04-11 18:58:01 +02:00
Philip Rebohle
7c1919eaa1
[dxvk] Added missing shader files 2018-04-11 18:57:31 +02:00
Philip Rebohle
ac8447b32e
[dxvk] Add separate clear shaders for array views
Creating one shader per image view type may help in case we
get an already compatible image view from the D3D11 application.
2018-04-11 17:16:18 +02:00
Philip Rebohle
676b0cb476
[dxvk] Added DxvkMetaClearObjects stub 2018-04-11 17:05:12 +02:00
Philip Rebohle
9970dfaeca
[dxvk] Add format info flag for integer formats 2018-04-11 16:21:59 +02:00
Philip Rebohle
6a0ab19049
[dxvk] Added meta shaders for image/buffer clear operations
The D3D11 ClearUnorderedAccessView* and ClearView functions
will have to be emulated using compute shaders rather than
clear operations, since Vulkan clear operations do not take
image views and their format into account.
2018-04-11 13:07:04 +02:00
Philip Rebohle
4797645bd2
[dxvk] Removed unused DxvkOptions 2018-04-11 13:06:43 +02:00
Philip Rebohle
a28303c4bd
[dxvk] Optimize binding ID remapping
We don't need to iterate over the full shader code when creating
a new shader module. This optimization may slightly reduce the
initial pipeline creation time.
2018-04-10 12:48:46 +02:00
Philip Rebohle
d68d62f837
[dxvk] Removed on-disk pipeline cache
Drivers from both major vendors implement their own shader cache
already, and storing a cache per game causes more issues than it
solves. Should fix #261.
2018-04-09 19:38:32 +02:00
Philip Rebohle
687ef77860
[dxvk] Enable sample rate shading if needed 2018-04-08 21:49:30 +02:00
Philip Rebohle
4c3e77e9e3
[dxvk] Add missing format info for the *_422_UNORM formats 2018-04-08 20:40:12 +02:00
Philip Rebohle
4d28f765df
[dxvk] Remove support for VK_AMD_rasterization_order
RADV will be doing this by default when it makes sense.
2018-04-04 15:09:24 +02:00
Philip Rebohle
89c3b60640 [dxvk] Removed upper limit for CS chunks
Since we are synchronizing once per frame anyway, there is no need to
artificially limit the number of chunks in flight. Applications which
use deferred contexts and submit a large number of CS chunks through
command lists may benefit from this optimization.
2018-04-03 20:06:25 +02:00
Philip Rebohle
0b2e88b087 [hud] Added <unordered_map> include to satisfy some compilers 2018-04-03 16:27:16 +02:00
Philip Rebohle
9ef4168867 [dxvk] Added support for pipeline-related stat counters 2018-04-03 15:52:39 +02:00
Philip Rebohle
561fa7440b [dxvk] Retrieve actual memory stats for the HUD 2018-04-03 15:32:00 +02:00
Philip Rebohle
fc3f45c082 [hud] Added stat counters to the HUD 2018-04-03 14:49:13 +02:00
Philip Rebohle
3ed03f7a3d [hud] Added configurable HUD
HUD elements can be enabled individually using a comma-separated
list. Supported options include:
- fps: Displays the framerate
- devinfo: Displays device info

Passing "1" has the same effect as "fps,devinfo".
2018-04-03 12:33:08 +02:00
Philip Rebohle
8aa8610221 [dxvk] Implement basic stat counters for draw calls, queue ops 2018-04-03 11:56:12 +02:00
Philip Rebohle
c9465b39d1 [util] Implement spin lock 2018-04-03 11:56:02 +02:00
Philip Rebohle
a5077952ea [dxvk] Reintroduce stat counters 2018-04-03 11:03:57 +02:00
Philip Rebohle
097eb89cfb [dxvk] Log pipeline state when pipeline compilation fails 2018-04-02 19:05:41 +02:00
Philip Rebohle
05e0f3d52d
[dxvk] Remove mutex from Dxvk(Graphics|Compute)Pipeline
Not needed anymore because the pipe manager itself won't be
accessed by multiple threads any longer.
2018-03-29 16:36:31 +02:00
Philip Rebohle
6e27f12e22
[dxvk] Move DxvkPipelineManager object to DxvkContext
Since we create only one DxvkContext per D3D11Device, rather than
per D3D11DeviceContext as originally planned, there is no need to
keep the pipeline manager as a global thread-safe object. This may
slightly reduce CPU overhead.
2018-03-29 12:32:20 +02:00
Philip Rebohle
108bf2194f
[dxvk] Time pipeline creation in debug mode 2018-03-29 12:06:53 +02:00
Philip Rebohle
fc47fb8f6c
[dxvk] Do not create descriptor set layout/template if binding count is 0
Fixes a validation error in case an application renders geometry without
any active shader resource slots.
2018-03-26 23:13:33 +02:00
Philip Rebohle
ba9e1f307d
[dxbc] Don't use rvalue references for file streams 2018-03-23 18:17:16 +01:00
Philip Rebohle
44d8d6b8c3
[dxvk] Fixed command buffer synchronization 2018-03-22 20:15:46 +01:00
Philip Rebohle
2566909917
[dxvk] Remove DxvkFence 2018-03-22 19:01:01 +01:00