mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
Compare commits
3 Commits
vkd3d-1.12
...
vkd3d-1.7.
Author | SHA1 | Date | |
---|---|---|---|
|
154acd2c2b | ||
|
cb2acc35f2 | ||
|
7b9b0179ec |
66
ANNOUNCE
66
ANNOUNCE
@@ -1,17 +1,12 @@
|
||||
The Wine team is proud to announce that release 1.7 of vkd3d, the Direct3D to
|
||||
The Wine team is proud to announce that release 1.7.1 of vkd3d, the Direct3D to
|
||||
Vulkan translation library, is now available.
|
||||
|
||||
This release contains improvements that are listed in the release notes below.
|
||||
The main highlights are:
|
||||
|
||||
- Support for many more HLSL features and intrinsics.
|
||||
- Much improved support for the Direct3D shader model 1/2/3 HLSL profiles.
|
||||
- Public vkd3d-shader API for parsing and serialising DXBC blobs.
|
||||
- Miscellaneous bug fixes.
|
||||
This is a bugfix release, only containing targeted fixes for a couple
|
||||
of defects that had slipped in in vkd3d 1.7.
|
||||
|
||||
The source is available from the following location:
|
||||
|
||||
https://dl.winehq.org/vkd3d/source/vkd3d-1.7.tar.xz
|
||||
https://dl.winehq.org/vkd3d/source/vkd3d-1.7.1.tar.xz
|
||||
|
||||
The current source can also be pulled directly from the git repository:
|
||||
|
||||
@@ -22,49 +17,20 @@ for the complete list.
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
What's new in vkd3d 1.7
|
||||
=======================
|
||||
What's new in vkd3d 1.7.1
|
||||
=========================
|
||||
|
||||
|
||||
*** libvkd3d-shader
|
||||
*** libvkd3d
|
||||
|
||||
- New features for the HLSL source type:
|
||||
- Support for calling user-defined functions.
|
||||
- Support for array parameters to user-defined functions.
|
||||
- Much improved support for the Direct3D shader model 1/2/3 profiles.
|
||||
- Support for the SV_DispatchThreadID, SV_GroupID, and SV_GroupThreadID
|
||||
compute shader system-value semantics.
|
||||
- Support for the optional "offset" parameter of the texture object Load()
|
||||
method.
|
||||
- Support for the all() intrinsic function.
|
||||
- Support for the distance() intrinsic function.
|
||||
- Support for the exp() and exp2() intrinsic functions.
|
||||
- Support for the frac() intrinsic function.
|
||||
- Support for the lit() intrinsic function.
|
||||
- Support for the reflect() intrinsic function.
|
||||
- Support for the sin() and cos() intrinsic functions.
|
||||
- Support for the smoothstep() intrinsic function.
|
||||
- Support for the sqrt() and rsqrt() intrinsic functions.
|
||||
- Support for the step() intrinsic function.
|
||||
- Support for the transpose() intrinsic function.
|
||||
- Support for the case-insensitive variants of the "float" and "dword" data
|
||||
types.
|
||||
- Partial support for minimum precision data types like "min16float". These
|
||||
are currently interpreted as their regular counterparts.
|
||||
- Improved constant propagation support, in particular to constant
|
||||
propagation through swizzles.
|
||||
- Release 1.7 has a bug that causes an internal mutex in its command
|
||||
queue implementation to be unlocked too early under certain usage
|
||||
patterns. This is known to further cause internal inconsistencies
|
||||
that manifest as program deadlocks for some programs. In release
|
||||
1.7.1 the mutex is correctly kept locked until required.
|
||||
|
||||
- HLSL static variables are now properly zero-initialised.
|
||||
*** libvkd3d-utils
|
||||
|
||||
- The Direct3D shader model 4 and 5 disassembler outputs sample counts for
|
||||
multi-sampled resource declarations.
|
||||
|
||||
- New interfaces:
|
||||
- vkd3d_shader_parse_dxbc() provides support for parsing DXBC blobs.
|
||||
- vkd3d_shader_serialize_dxbc() provides support for serialising DXBC blobs.
|
||||
- vkd3d_shader_free_dxbc() is used to free vkd3d_shader_dxbc_desc
|
||||
structures, as returned by vkd3d_shader_parse_dxbc().
|
||||
- The VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE compile option
|
||||
can be used to specify whether SPIR-V shaders targeting Vulkan
|
||||
environments should write point sizes for geometry and tessellation
|
||||
shaders. If left unspecified, point sizes will be written.
|
||||
- Symbol D3D12CreateDevice is mistakenly not exported in release 1.7,
|
||||
breaking library clients that need it. The symbol is exported again
|
||||
in release 1.7.1.
|
||||
|
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([vkd3d],[1.7])
|
||||
AC_INIT([vkd3d],[1.7.1])
|
||||
|
||||
AC_CONFIG_AUX_DIR([bin])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
@@ -85,7 +85,7 @@ HRESULT WINAPI D3D12CreateDeviceVKD3D(IUnknown *adapter, D3D_FEATURE_LEVEL minim
|
||||
return vkd3d_create_device(&device_create_info, iid, device);
|
||||
}
|
||||
|
||||
HRESULT WINAPI D3D12CreateDevice(IUnknown *adapter,
|
||||
VKD3D_UTILS_API HRESULT WINAPI D3D12CreateDevice(IUnknown *adapter,
|
||||
D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device)
|
||||
{
|
||||
return D3D12CreateDeviceVKD3D(adapter, minimum_feature_level, iid, device, VKD3D_API_VERSION_1_0);
|
||||
|
@@ -6781,16 +6781,16 @@ static bool d3d12_command_queue_op_array_append(struct d3d12_command_queue_op_ar
|
||||
return true;
|
||||
}
|
||||
|
||||
static HRESULT d3d12_command_queue_fixup_after_flush(struct d3d12_command_queue *queue, unsigned int done_count)
|
||||
static void d3d12_command_queue_delete_aux_ops(struct d3d12_command_queue *queue,
|
||||
unsigned int done_count)
|
||||
{
|
||||
HRESULT hr;
|
||||
|
||||
queue->aux_op_queue.count -= done_count;
|
||||
memmove(queue->aux_op_queue.ops, &queue->aux_op_queue.ops[done_count],
|
||||
queue->aux_op_queue.count * sizeof(*queue->aux_op_queue.ops));
|
||||
}
|
||||
|
||||
vkd3d_mutex_lock(&queue->op_mutex);
|
||||
|
||||
static HRESULT d3d12_command_queue_fixup_after_flush_locked(struct d3d12_command_queue *queue)
|
||||
{
|
||||
d3d12_command_queue_swap_queues(queue);
|
||||
|
||||
d3d12_command_queue_op_array_append(&queue->op_queue, queue->aux_op_queue.count, queue->aux_op_queue.ops);
|
||||
@@ -6798,11 +6798,7 @@ static HRESULT d3d12_command_queue_fixup_after_flush(struct d3d12_command_queue
|
||||
queue->aux_op_queue.count = 0;
|
||||
queue->is_flushing = false;
|
||||
|
||||
hr = d3d12_command_queue_record_as_blocked(queue);
|
||||
|
||||
vkd3d_mutex_unlock(&queue->op_mutex);
|
||||
|
||||
return hr;
|
||||
return d3d12_command_queue_record_as_blocked(queue);
|
||||
}
|
||||
|
||||
static HRESULT d3d12_command_queue_flush_ops(struct d3d12_command_queue *queue, bool *flushed_any)
|
||||
@@ -6855,7 +6851,9 @@ static HRESULT d3d12_command_queue_flush_ops_locked(struct d3d12_command_queue *
|
||||
if (op->u.wait.value > fence->max_pending_value)
|
||||
{
|
||||
vkd3d_mutex_unlock(&fence->mutex);
|
||||
return d3d12_command_queue_fixup_after_flush(queue, i);
|
||||
d3d12_command_queue_delete_aux_ops(queue, i);
|
||||
vkd3d_mutex_lock(&queue->op_mutex);
|
||||
return d3d12_command_queue_fixup_after_flush_locked(queue);
|
||||
}
|
||||
d3d12_command_queue_wait_locked(queue, fence, op->u.wait.value);
|
||||
d3d12_fence_decref(fence);
|
||||
|
Reference in New Issue
Block a user