winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
September 2018
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
670 discussions
Start a n
N
ew thread
Józef Kucia : vkd3d: Implement d3d12_device_GetResourceAllocationInfo() for buffers.
by Alexandre Julliard
26 Sep '18
26 Sep '18
Module: vkd3d Branch: master Commit: 99e239ad500349fc0977c73e3cd4682aa1d17640 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=99e239ad500349fc0977c73…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 14:13:00 2018 +0200 vkd3d: Implement d3d12_device_GetResourceAllocationInfo() for buffers. In Direct3D12, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT is always used for buffers. We could try to use a lower alignment when supported by the Vulkan implementation, but there is no way to get buffer memory requirements without creating a buffer in Vulkan. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d/device.c | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index a3a00b9..54196ac 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -2022,16 +2022,43 @@ static void STDMETHODCALLTYPE d3d12_device_CopyDescriptorsSimple(ID3D12Device *i } static D3D12_RESOURCE_ALLOCATION_INFO * STDMETHODCALLTYPE d3d12_device_GetResourceAllocationInfo( - ID3D12Device *iface, D3D12_RESOURCE_ALLOCATION_INFO *allocation_info, UINT visible_mask, - UINT resource_desc_count, const D3D12_RESOURCE_DESC *resource_descs) + ID3D12Device *iface, D3D12_RESOURCE_ALLOCATION_INFO *info, UINT visible_mask, + UINT count, const D3D12_RESOURCE_DESC *resource_descs) { - FIXME("iface %p, allocation_info %p, visible_mask 0x%08x, resource_desc_count %u, " - "resource_descs %p stub!\n", - iface, allocation_info, visible_mask, resource_desc_count, resource_descs); + const D3D12_RESOURCE_DESC *desc; + + TRACE("iface %p, info %p, visible_mask 0x%08x, count %u, resource_descs %p.\n", + iface, info, visible_mask, count, resource_descs); debug_ignored_node_mask(visible_mask); - return allocation_info; + info->SizeInBytes = 0; + info->Alignment = 0; + + if (count != 1) + { + FIXME("Multiple resource descriptions not supported.\n"); + return info; + } + + desc = &resource_descs[0]; + if (desc->Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) + { + info->SizeInBytes = align(desc->Width, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT); + info->Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT; + } + else + { + FIXME("Unhandled dimension %#x.\n", desc->Dimension); + } + + if (FAILED(d3d12_resource_validate_desc(desc))) + { + WARN("Invalid resource desc.\n"); + info->SizeInBytes = ~(UINT64)0; + } + + return info; } static D3D12_HEAP_PROPERTIES * STDMETHODCALLTYPE d3d12_device_GetCustomHeapProperties(ID3D12Device *iface,
1
0
0
0
Józef Kucia : vkd3d: Add support for fake placed resources.
by Alexandre Julliard
26 Sep '18
26 Sep '18
Module: vkd3d Branch: master Commit: e93fed2c93980df0500885bc8b38c0135dfa3c78 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=e93fed2c93980df0500885b…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 14:12:59 2018 +0200 vkd3d: Add support for fake placed resources. Placed resources are not allocated from a given heap yet. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d/device.c | 22 ++++++++++++++++------ libs/vkd3d/resource.c | 20 ++++++++++++++++++++ libs/vkd3d/vkd3d_private.h | 4 ++++ 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index b57e3ce..a3a00b9 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -2091,15 +2091,25 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CreateHeap(ID3D12Device *iface, static HRESULT STDMETHODCALLTYPE d3d12_device_CreatePlacedResource(ID3D12Device *iface, ID3D12Heap *heap, UINT64 heap_offset, const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state, - const D3D12_CLEAR_VALUE *optimized_clear_value, - REFIID riid, void **resource) + const D3D12_CLEAR_VALUE *optimized_clear_value, REFIID iid, void **resource) { - FIXME("iface %p, heap %p, heap_offset %#"PRIx64", desc %p, initial_state %#x, " - "optimized_clear_value %p, riid %s, resource %p stub!\n", + struct d3d12_device *device = impl_from_ID3D12Device(iface); + struct d3d12_heap *heap_object; + struct d3d12_resource *object; + HRESULT hr; + + TRACE("iface %p, heap %p, heap_offset %#"PRIx64", desc %p, initial_state %#x, " + "optimized_clear_value %p, iid %s, resource %p.\n", iface, heap, heap_offset, desc, initial_state, - optimized_clear_value, debugstr_guid(riid), resource); + optimized_clear_value, debugstr_guid(iid), resource); - return E_NOTIMPL; + heap_object = unsafe_impl_from_ID3D12Heap(heap); + + if (FAILED(hr = d3d12_placed_resource_create(device, heap_object, heap_offset, + desc, initial_state, optimized_clear_value, &object))) + return hr; + + return return_interface(&object->ID3D12Resource_iface, &IID_ID3D12Resource, iid, resource); } static HRESULT STDMETHODCALLTYPE d3d12_device_CreateReservedResource(ID3D12Device *iface, diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index 10f1d83..1580450 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -146,6 +146,14 @@ static const struct ID3D12HeapVtbl d3d12_heap_vtbl = d3d12_heap_GetDesc, }; +struct d3d12_heap *unsafe_impl_from_ID3D12Heap(ID3D12Heap *iface) +{ + if (!iface) + return NULL; + assert(iface->lpVtbl == &d3d12_heap_vtbl); + return impl_from_ID3D12Heap(iface); +} + static HRESULT validate_heap_desc(const D3D12_HEAP_DESC *desc) { if (!desc->SizeInBytes) @@ -1049,6 +1057,18 @@ HRESULT d3d12_committed_resource_create(struct d3d12_device *device, return S_OK; } +HRESULT d3d12_placed_resource_create(struct d3d12_device *device, struct d3d12_heap *heap, UINT64 heap_offset, + const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state, + const D3D12_CLEAR_VALUE *optimized_clear_value, struct d3d12_resource **resource) +{ + const D3D12_HEAP_DESC *heap_desc = &heap->desc; + + FIXME("Ignoring heap %p, offset %"PRIu64".\n", heap, heap_offset); + + return d3d12_committed_resource_create(device, &heap_desc->Properties, heap_desc->Flags, + desc, initial_state, optimized_clear_value, resource); +} + HRESULT vkd3d_create_image_resource(ID3D12Device *device, const struct vkd3d_image_resource_create_info *create_info, ID3D12Resource **resource) { diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 5aaa565..c4d6dd5 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -195,6 +195,7 @@ struct d3d12_heap HRESULT d3d12_heap_create(struct d3d12_device *device, const D3D12_HEAP_DESC *desc, struct d3d12_heap **heap) DECLSPEC_HIDDEN; +struct d3d12_heap *unsafe_impl_from_ID3D12Heap(ID3D12Heap *iface) DECLSPEC_HIDDEN; #define VKD3D_RESOURCE_PUBLIC_FLAGS \ (VKD3D_RESOURCE_INITIAL_STATE_TRANSITION | VKD3D_RESOURCE_PRESENT_STATE_TRANSITION) @@ -245,6 +246,9 @@ HRESULT d3d12_committed_resource_create(struct d3d12_device *device, const D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS heap_flags, const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state, const D3D12_CLEAR_VALUE *optimized_clear_value, struct d3d12_resource **resource) DECLSPEC_HIDDEN; +HRESULT d3d12_placed_resource_create(struct d3d12_device *device, struct d3d12_heap *heap, UINT64 heap_offset, + const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state, + const D3D12_CLEAR_VALUE *optimized_clear_value, struct d3d12_resource **resource) DECLSPEC_HIDDEN; struct d3d12_resource *unsafe_impl_from_ID3D12Resource(ID3D12Resource *iface) DECLSPEC_HIDDEN; struct vkd3d_view
1
0
0
0
Francois Gouget : testbot/WineSendLog: Fix the reference log path.
by Alexandre Julliard
26 Sep '18
26 Sep '18
Module: tools Branch: master Commit: 37c48af98dbce0245404d706edff84b9e3c4aec0 URL:
https://source.winehq.org/git/tools.git/?a=commit;h=37c48af98dbce0245404d70…
Author: Francois Gouget <fgouget(a)codeweavers.com> Date: Wed Sep 26 09:32:50 2018 +0200 testbot/WineSendLog: Fix the reference log path. Use the same reference logs that JobDetails uses. $RefFileName was missing a slash anyway. Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- testbot/bin/WineSendLog.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testbot/bin/WineSendLog.pl b/testbot/bin/WineSendLog.pl index 36d47c3..bb6dab5 100755 --- a/testbot/bin/WineSendLog.pl +++ b/testbot/bin/WineSendLog.pl @@ -287,7 +287,7 @@ EOF foreach my $LogName (@{$JobErrors->{$Key}->{LogNames}}) { my $LogErrors = $JobErrors->{$Key}->{$LogName}; - my $RefFileName = "$DataDir/latest". $StepTask->VM->Name ."_$LogName"; + my $RefFileName = $StepTask->GetFullFileName($StepTask->VM->Name ."_$LogName"); my ($NewGroups, $NewErrors, $_NewIndices) = GetNewLogErrors($RefFileName, $LogErrors->{Groups}, $LogErrors->{Errors}); if (!$NewGroups) {
1
0
0
0
Francois Gouget : testbot: Run the patched tests on Wine.
by Alexandre Julliard
26 Sep '18
26 Sep '18
Module: tools Branch: master Commit: f79ca32d67225249a08c9972b427c513343e4e5b URL:
https://source.winehq.org/git/tools.git/?a=commit;h=f79ca32d67225249a08c997…
Author: Francois Gouget <fgouget(a)codeweavers.com> Date: Wed Sep 26 01:28:47 2018 +0200 testbot: Run the patched tests on Wine. Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- testbot/bin/CheckForWinetestUpdate.pl | 4 +-- testbot/bin/WineRunWineTest.pl | 53 +++++++++++++++++++++++++----- testbot/bin/build/WineTest.pl | 61 +++++++++++++++++++++++++++++++++-- testbot/lib/WineTestBot/Config.pm | 8 +++-- testbot/lib/WineTestBot/PatchUtils.pm | 17 +++++++++- testbot/lib/WineTestBot/Patches.pm | 5 +-- testbot/web/Submit.pl | 9 ++---- 7 files changed, 133 insertions(+), 24 deletions(-) Diff:
https://source.winehq.org/git/tools.git/?a=commitdiff;h=f79ca32d67225249a08…
1
0
0
0
Józef Kucia : wined3d: Add GL_ARB_shader_viewport_layer_array extension.
by Alexandre Julliard
25 Sep '18
25 Sep '18
Module: wine Branch: master Commit: dbaaee8e4d72b929e86c590a9e40c48ea86468c4 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=dbaaee8e4d72b929e86c590a…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 12:10:12 2018 +0200 wined3d: Add GL_ARB_shader_viewport_layer_array extension. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/adapter_gl.c | 1 + dlls/wined3d/glsl_shader.c | 2 ++ dlls/wined3d/wined3d_gl.h | 1 + 3 files changed, 4 insertions(+) diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 1d360d1..1722438 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -113,6 +113,7 @@ static const struct wined3d_extension_map gl_extension_map[] = {"GL_ARB_shader_storage_buffer_object", ARB_SHADER_STORAGE_BUFFER_OBJECT}, {"GL_ARB_shader_texture_image_samples", ARB_SHADER_TEXTURE_IMAGE_SAMPLES}, {"GL_ARB_shader_texture_lod", ARB_SHADER_TEXTURE_LOD }, + {"GL_ARB_shader_viewport_layer_array", ARB_SHADER_VIEWPORT_LAYER_ARRAY}, {"GL_ARB_shading_language_100", ARB_SHADING_LANGUAGE_100 }, {"GL_ARB_shading_language_420pack", ARB_SHADING_LANGUAGE_420PACK }, {"GL_ARB_shading_language_packing", ARB_SHADING_LANGUAGE_PACKING }, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 5234808..0db7fdc 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -8140,6 +8140,8 @@ static GLuint shader_glsl_generate_vshader(const struct wined3d_context *context shader_addline(buffer, "#extension GL_ARB_draw_instanced : enable\n"); if (shader_glsl_use_explicit_attrib_location(gl_info)) shader_addline(buffer, "#extension GL_ARB_explicit_attrib_location : enable\n"); + if (gl_info->supported[ARB_SHADER_VIEWPORT_LAYER_ARRAY]) + shader_addline(buffer, "#extension GL_ARB_shader_viewport_layer_array : enable\n"); /* Base Declarations */ shader_generate_glsl_declarations(context, buffer, shader, reg_maps, &priv_ctx); diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 525c298..06aa21c 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -93,6 +93,7 @@ enum wined3d_gl_extension ARB_SAMPLER_OBJECTS, ARB_SEAMLESS_CUBE_MAP, ARB_SHADER_ATOMIC_COUNTERS, + ARB_SHADER_VIEWPORT_LAYER_ARRAY, ARB_SHADER_BIT_ENCODING, ARB_SHADER_IMAGE_LOAD_STORE, ARB_SHADER_IMAGE_SIZE,
1
0
0
0
Józef Kucia : wined3d: Derive allowed shader versions from the current feature level.
by Alexandre Julliard
25 Sep '18
25 Sep '18
Module: wine Branch: master Commit: 937f4897fd6507203eb5738e79f073f9754b555b URL:
https://source.winehq.org/git/wine.git/?a=commit;h=937f4897fd6507203eb5738e…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 10:33:25 2018 +0200 wined3d: Derive allowed shader versions from the current feature level. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/shader.c | 27 --------------------------- dlls/d3d8/shader.c | 2 -- dlls/d3d9/shader.c | 2 -- dlls/wined3d/shader.c | 37 ++++++++++++++++++++++++++++++------- include/wine/wined3d.h | 1 - 5 files changed, 30 insertions(+), 39 deletions(-) diff --git a/dlls/d3d11/shader.c b/dlls/d3d11/shader.c index 759c570..a1da9ef 100644 --- a/dlls/d3d11/shader.c +++ b/dlls/d3d11/shader.c @@ -517,27 +517,6 @@ static const struct wined3d_parent_ops d3d_vertex_shader_wined3d_parent_ops = d3d_vertex_shader_wined3d_object_destroyed, }; -static unsigned int d3d_sm_from_feature_level(D3D_FEATURE_LEVEL feature_level) -{ - switch (feature_level) - { - case D3D_FEATURE_LEVEL_11_1: - case D3D_FEATURE_LEVEL_11_0: - return 5; - case D3D_FEATURE_LEVEL_10_1: - case D3D_FEATURE_LEVEL_10_0: - return 4; - case D3D_FEATURE_LEVEL_9_3: - return 3; - case D3D_FEATURE_LEVEL_9_2: - case D3D_FEATURE_LEVEL_9_1: - return 2; - default: - ERR("Unexpected feature_level %#x.\n", feature_level); - } - return 0; -} - static HRESULT d3d_vertex_shader_init(struct d3d_vertex_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length) { @@ -557,7 +536,6 @@ static HRESULT d3d_vertex_shader_init(struct d3d_vertex_shader *shader, struct d wined3d_mutex_unlock(); return hr; } - desc.max_version = d3d_sm_from_feature_level(device->feature_level); hr = wined3d_shader_create_vs(device->wined3d_device, &desc, shader, &d3d_vertex_shader_wined3d_parent_ops, &shader->wined3d_shader); @@ -769,7 +747,6 @@ static HRESULT d3d11_hull_shader_init(struct d3d11_hull_shader *shader, struct d wined3d_mutex_unlock(); return hr; } - desc.max_version = d3d_sm_from_feature_level(device->feature_level); hr = wined3d_shader_create_hs(device->wined3d_device, &desc, shader, &d3d11_hull_shader_wined3d_parent_ops, &shader->wined3d_shader); @@ -971,7 +948,6 @@ static HRESULT d3d11_domain_shader_init(struct d3d11_domain_shader *shader, stru wined3d_mutex_unlock(); return hr; } - desc.max_version = d3d_sm_from_feature_level(device->feature_level); hr = wined3d_shader_create_ds(device->wined3d_device, &desc, shader, &d3d11_domain_shader_wined3d_parent_ops, &shader->wined3d_shader); @@ -1477,7 +1453,6 @@ static HRESULT d3d_geometry_shader_init(struct d3d_geometry_shader *shader, WARN("Failed to extract shader, hr %#x.\n", hr); return hr; } - desc.max_version = d3d_sm_from_feature_level(device->feature_level); memset(&so_desc, 0, sizeof(so_desc)); if (so_entries) @@ -1827,7 +1802,6 @@ static HRESULT d3d_pixel_shader_init(struct d3d_pixel_shader *shader, struct d3d wined3d_mutex_unlock(); return hr; } - desc.max_version = d3d_sm_from_feature_level(device->feature_level); hr = wined3d_shader_create_ps(device->wined3d_device, &desc, shader, &d3d_pixel_shader_wined3d_parent_ops, &shader->wined3d_shader); @@ -2037,7 +2011,6 @@ static HRESULT d3d11_compute_shader_init(struct d3d11_compute_shader *shader, st wined3d_mutex_unlock(); return hr; } - desc.max_version = d3d_sm_from_feature_level(device->feature_level); hr = wined3d_shader_create_cs(device->wined3d_device, &desc, shader, &d3d11_compute_shader_wined3d_parent_ops, &shader->wined3d_shader); diff --git a/dlls/d3d8/shader.c b/dlls/d3d8/shader.c index 8192b23..8a68812 100644 --- a/dlls/d3d8/shader.c +++ b/dlls/d3d8/shader.c @@ -121,7 +121,6 @@ HRESULT d3d8_vertex_shader_init(struct d3d8_vertex_shader *shader, struct d3d8_d desc.input_signature.element_count = 0; desc.output_signature.element_count = 0; desc.patch_constant_signature.element_count = 0; - desc.max_version = 1; wined3d_mutex_lock(); hr = wined3d_shader_create_vs(device->wined3d_device, &desc, shader, @@ -173,7 +172,6 @@ HRESULT d3d8_pixel_shader_init(struct d3d8_pixel_shader *shader, struct d3d8_dev desc.input_signature.element_count = 0; desc.output_signature.element_count = 0; desc.patch_constant_signature.element_count = 0; - desc.max_version = 1; wined3d_mutex_lock(); hr = wined3d_shader_create_ps(device->wined3d_device, &desc, shader, diff --git a/dlls/d3d9/shader.c b/dlls/d3d9/shader.c index 9cb3983..5fc356c 100644 --- a/dlls/d3d9/shader.c +++ b/dlls/d3d9/shader.c @@ -148,7 +148,6 @@ HRESULT vertexshader_init(struct d3d9_vertexshader *shader, struct d3d9_device * desc.input_signature.element_count = 0; desc.output_signature.element_count = 0; desc.patch_constant_signature.element_count = 0; - desc.max_version = 3; wined3d_mutex_lock(); hr = wined3d_shader_create_vs(device->wined3d_device, &desc, shader, @@ -302,7 +301,6 @@ HRESULT pixelshader_init(struct d3d9_pixelshader *shader, struct d3d9_device *de desc.input_signature.element_count = 0; desc.output_signature.element_count = 0; desc.patch_constant_signature.element_count = 0; - desc.max_version = 3; wined3d_mutex_lock(); hr = wined3d_shader_create_ps(device->wined3d_device, &desc, shader, diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 20d4f07..62ec971 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -3321,8 +3321,8 @@ const struct wined3d_shader_backend_ops none_shader_backend = shader_none_has_ffp_proj_control, }; -static HRESULT shader_set_function(struct wined3d_shader *shader, DWORD float_const_count, - enum wined3d_shader_type type, unsigned int max_version) +static HRESULT shader_set_function(struct wined3d_shader *shader, + unsigned int float_const_count, enum wined3d_shader_type type, unsigned int max_version) { const struct wined3d_d3d_info *d3d_info = &shader->device->adapter->d3d_info; struct wined3d_shader_reg_maps *reg_maps = &shader->reg_maps; @@ -3351,12 +3351,12 @@ static HRESULT shader_set_function(struct wined3d_shader *shader, DWORD float_co if (reg_maps->shader_version.type != type) { - WARN("Wrong shader type %d.\n", reg_maps->shader_version.type); + WARN("Wrong shader type %#x.\n", reg_maps->shader_version.type); return WINED3DERR_INVALIDCALL; } if (reg_maps->shader_version.major > max_version) { - WARN("Shader version %d not supported by this D3D API version.\n", reg_maps->shader_version.major); + WARN("Shader version %u not supported by this device.\n", reg_maps->shader_version.major); return WINED3DERR_INVALIDCALL; } switch (type) @@ -3636,17 +3636,40 @@ static HRESULT shader_signature_copy(struct wined3d_shader_signature *dst, return WINED3D_OK; } +static unsigned int shader_max_version_from_feature_level(enum wined3d_feature_level level) +{ + switch (level) + { + case WINED3D_FEATURE_LEVEL_11_1: + case WINED3D_FEATURE_LEVEL_11: + return 5; + case WINED3D_FEATURE_LEVEL_10_1: + case WINED3D_FEATURE_LEVEL_10: + return 4; + case WINED3D_FEATURE_LEVEL_9_SM3: + return 3; + case WINED3D_FEATURE_LEVEL_9_SM2: + case WINED3D_FEATURE_LEVEL_9_1: + return 2; + default: + return 1; + } +} + static HRESULT shader_init(struct wined3d_shader *shader, struct wined3d_device *device, const struct wined3d_shader_desc *desc, DWORD float_const_count, enum wined3d_shader_type type, void *parent, const struct wined3d_parent_ops *parent_ops) { + unsigned int max_version; size_t byte_code_size; SIZE_T total; HRESULT hr; char *ptr; - TRACE("byte_code %p, byte_code_size %#lx, format %#x, max_version %#x.\n", - desc->byte_code, (long)desc->byte_code_size, desc->format, desc->max_version); + TRACE("byte_code %p, byte_code_size %#lx, format %#x.\n", + desc->byte_code, (long)desc->byte_code_size, desc->format); + + max_version = shader_max_version_from_feature_level(device->feature_level); if (!(shader->frontend = shader_select_frontend(desc->format))) { @@ -3732,7 +3755,7 @@ static HRESULT shader_init(struct wined3d_shader *shader, struct wined3d_device memcpy(shader->function, desc->byte_code, byte_code_size); shader->functionLength = byte_code_size; - if (FAILED(hr = shader_set_function(shader, float_const_count, type, desc->max_version))) + if (FAILED(hr = shader_set_function(shader, float_const_count, type, max_version))) { WARN("Failed to set function, hr %#x.\n", hr); shader_cleanup(shader); diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h index ef89caf..dc613ff 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2063,7 +2063,6 @@ struct wined3d_shader_desc struct wined3d_shader_signature input_signature; struct wined3d_shader_signature output_signature; struct wined3d_shader_signature patch_constant_signature; - unsigned int max_version; }; struct wined3d_stream_output_element
1
0
0
0
Józef Kucia : d3d11: Trace skipped DXBC chunks.
by Alexandre Julliard
25 Sep '18
25 Sep '18
Module: wine Branch: master Commit: 508512312cd1f6959a2e2cbe107b64fcdd14cc63 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=508512312cd1f6959a2e2cbe…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 10:33:24 2018 +0200 d3d11: Trace skipped DXBC chunks. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/d3d11_private.h | 2 -- dlls/d3d11/shader.c | 6 +----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/dlls/d3d11/d3d11_private.h b/dlls/d3d11/d3d11_private.h index 3049193..e26554a 100644 --- a/dlls/d3d11/d3d11_private.h +++ b/dlls/d3d11/d3d11_private.h @@ -47,10 +47,8 @@ #define TAG_OSG5 MAKE_TAG('O', 'S', 'G', '5') #define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N') #define TAG_PCSG MAKE_TAG('P', 'C', 'S', 'G') -#define TAG_RDEF MAKE_TAG('R', 'D', 'E', 'F') #define TAG_SHDR MAKE_TAG('S', 'H', 'D', 'R') #define TAG_SHEX MAKE_TAG('S', 'H', 'E', 'X') -#define TAG_STAT MAKE_TAG('S', 'T', 'A', 'T') struct d3d_device; diff --git a/dlls/d3d11/shader.c b/dlls/d3d11/shader.c index c8d512f..759c570 100644 --- a/dlls/d3d11/shader.c +++ b/dlls/d3d11/shader.c @@ -136,12 +136,8 @@ static HRESULT shdr_handler(const char *data, DWORD data_size, DWORD tag, void * } break; - case TAG_RDEF: - case TAG_STAT: - break; - default: - FIXME("Unhandled chunk %s.\n", debugstr_an((const char *)&tag, 4)); + TRACE("Skipping chunk %s.\n", debugstr_an((const char *)&tag, 4)); break; }
1
0
0
0
Józef Kucia : wined3d: Cleanup fallback cards list.
by Alexandre Julliard
25 Sep '18
25 Sep '18
Module: wine Branch: master Commit: c83a47004a707d1292b77eabc1cf44c037d46156 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=c83a47004a707d1292b77eab…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 10:33:23 2018 +0200 wined3d: Cleanup fallback cards list. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/directx.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index f7ef5c0..97037b6 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -637,7 +637,6 @@ enum wined3d_pci_device wined3d_gpu_from_feature_level(enum wined3d_pci_vendor * card_fallback_amd[] = { {WINED3D_FEATURE_LEVEL_5, CARD_AMD_RAGE_128PRO}, - {WINED3D_FEATURE_LEVEL_6, CARD_AMD_RAGE_128PRO}, {WINED3D_FEATURE_LEVEL_7, CARD_AMD_RADEON_7200}, {WINED3D_FEATURE_LEVEL_8, CARD_AMD_RADEON_8500}, {WINED3D_FEATURE_LEVEL_9_SM2, CARD_AMD_RADEON_9500}, @@ -649,10 +648,7 @@ enum wined3d_pci_device wined3d_gpu_from_feature_level(enum wined3d_pci_vendor * card_fallback_intel[] = { {WINED3D_FEATURE_LEVEL_5, CARD_INTEL_845G}, - {WINED3D_FEATURE_LEVEL_6, CARD_INTEL_845G}, - {WINED3D_FEATURE_LEVEL_7, CARD_INTEL_845G}, {WINED3D_FEATURE_LEVEL_8, CARD_INTEL_915G}, - {WINED3D_FEATURE_LEVEL_9_SM2, CARD_INTEL_915G}, {WINED3D_FEATURE_LEVEL_9_SM3, CARD_INTEL_945G}, {WINED3D_FEATURE_LEVEL_10, CARD_INTEL_G45}, {WINED3D_FEATURE_LEVEL_11, CARD_INTEL_IVBD},
1
0
0
0
Józef Kucia : dxgi: Merge dxgi_check_feature_level_support() into dxgi_adapter_CheckInterfaceSupport().
by Alexandre Julliard
25 Sep '18
25 Sep '18
Module: wine Branch: master Commit: 04887860caecb2b88783eabb2416299f620ec8f5 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=04887860caecb2b88783eabb…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 10:33:22 2018 +0200 dxgi: Merge dxgi_check_feature_level_support() into dxgi_adapter_CheckInterfaceSupport(). Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dxgi/adapter.c | 30 ++++++++++++++------------ dlls/dxgi/dxgi_private.h | 3 --- dlls/dxgi/utils.c | 56 ------------------------------------------------ 3 files changed, 16 insertions(+), 73 deletions(-) diff --git a/dlls/dxgi/adapter.c b/dlls/dxgi/adapter.c index 1f81d77..4bc57a2 100644 --- a/dlls/dxgi/adapter.c +++ b/dlls/dxgi/adapter.c @@ -209,9 +209,10 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_GetDesc(IWineDXGIAdapter *iface, D static HRESULT STDMETHODCALLTYPE dxgi_adapter_CheckInterfaceSupport(IWineDXGIAdapter *iface, REFGUID guid, LARGE_INTEGER *umd_version) { - static const D3D_FEATURE_LEVEL feature_level = D3D_FEATURE_LEVEL_10_0; struct dxgi_adapter *adapter = impl_from_IWineDXGIAdapter(iface); struct wined3d_adapter_identifier adapter_id; + struct wined3d_caps caps; + struct wined3d *wined3d; HRESULT hr; TRACE("iface %p, guid %s, umd_version %p.\n", iface, debugstr_guid(guid), umd_version); @@ -224,23 +225,24 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_CheckInterfaceSupport(IWineDXGIAda return DXGI_ERROR_UNSUPPORTED; } - if (!dxgi_check_feature_level_support(adapter->factory, adapter, &feature_level, 1)) - return DXGI_ERROR_UNSUPPORTED; + adapter_id.driver_size = 0; + adapter_id.description_size = 0; + adapter_id.device_name_size = 0; - if (umd_version) - { - adapter_id.driver_size = 0; - adapter_id.description_size = 0; - adapter_id.device_name_size = 0; + wined3d_mutex_lock(); + wined3d = adapter->factory->wined3d; + hr = wined3d_get_device_caps(wined3d, adapter->ordinal, WINED3D_DEVICE_TYPE_HAL, &caps); + if (SUCCEEDED(hr)) + hr = wined3d_get_adapter_identifier(wined3d, adapter->ordinal, 0, &adapter_id); + wined3d_mutex_unlock(); - wined3d_mutex_lock(); - hr = wined3d_get_adapter_identifier(adapter->factory->wined3d, adapter->ordinal, 0, &adapter_id); - wined3d_mutex_unlock(); - if (FAILED(hr)) - return hr; + if (FAILED(hr)) + return hr; + if (caps.max_feature_level < WINED3D_FEATURE_LEVEL_10) + return DXGI_ERROR_UNSUPPORTED; + if (umd_version) *umd_version = adapter_id.driver_version; - } return S_OK; } diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h index 8c3e41a..78f1886 100644 --- a/dlls/dxgi/dxgi_private.h +++ b/dlls/dxgi/dxgi_private.h @@ -199,7 +199,4 @@ struct dxgi_surface HRESULT dxgi_surface_init(struct dxgi_surface *surface, IDXGIDevice *device, IUnknown *outer, struct wined3d_texture *wined3d_texture) DECLSPEC_HIDDEN; -D3D_FEATURE_LEVEL dxgi_check_feature_level_support(struct dxgi_factory *factory, struct dxgi_adapter *adapter, - const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count) DECLSPEC_HIDDEN; - #endif /* __WINE_DXGI_PRIVATE_H */ diff --git a/dlls/dxgi/utils.c b/dlls/dxgi/utils.c index ad8e2a2..73b37fd 100644 --- a/dlls/dxgi/utils.c +++ b/dlls/dxgi/utils.c @@ -619,59 +619,3 @@ HRESULT dxgi_set_private_data_interface(struct wined3d_private_store *store, return hr; } - -static enum wined3d_feature_level wined3d_feature_level_from_d3d(D3D_FEATURE_LEVEL feature_level) -{ - switch (feature_level) - { - case D3D_FEATURE_LEVEL_11_1: - return WINED3D_FEATURE_LEVEL_11_1; - case D3D_FEATURE_LEVEL_11_0: - return WINED3D_FEATURE_LEVEL_11; - case D3D_FEATURE_LEVEL_10_1: - return WINED3D_FEATURE_LEVEL_10_1; - case D3D_FEATURE_LEVEL_10_0: - return WINED3D_FEATURE_LEVEL_10; - case D3D_FEATURE_LEVEL_9_3: - return WINED3D_FEATURE_LEVEL_9_SM3; - case D3D_FEATURE_LEVEL_9_2: - return WINED3D_FEATURE_LEVEL_9_SM2; - case D3D_FEATURE_LEVEL_9_1: - return WINED3D_FEATURE_LEVEL_9_1; - default: - FIXME("Unhandled feature level %#x.\n", feature_level); - return 0; - } -} - -D3D_FEATURE_LEVEL dxgi_check_feature_level_support(struct dxgi_factory *factory, struct dxgi_adapter *adapter, - const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count) -{ - enum wined3d_feature_level wined3d_feature_level; - struct wined3d_caps caps; - unsigned int i; - HRESULT hr; - - wined3d_mutex_lock(); - hr = wined3d_get_device_caps(factory->wined3d, adapter->ordinal, WINED3D_DEVICE_TYPE_HAL, &caps); - wined3d_mutex_unlock(); - - if (FAILED(hr)) - level_count = 0; - - for (i = 0; i < level_count; ++i) - { - wined3d_feature_level = wined3d_feature_level_from_d3d(feature_levels[i]); - if (wined3d_feature_level && caps.max_feature_level >= wined3d_feature_level) - { - TRACE("Choosing supported feature level %s.\n", - debug_feature_level(feature_levels[i])); - return feature_levels[i]; - } - - TRACE("Feature level %s not supported, trying next fallback if available.\n", - debug_feature_level(feature_levels[i])); - } - - return 0; -}
1
0
0
0
Józef Kucia : dxgi: Simplify dxgi_adapter_GetDesc().
by Alexandre Julliard
25 Sep '18
25 Sep '18
Module: wine Branch: master Commit: 47cf3204b45d6a81f531008035e45ffb6f2c5d40 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=47cf3204b45d6a81f5310080…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Sep 25 10:33:21 2018 +0200 dxgi: Simplify dxgi_adapter_GetDesc(). Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dxgi/adapter.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dlls/dxgi/adapter.c b/dlls/dxgi/adapter.c index b7d7a0a..1f81d77 100644 --- a/dlls/dxgi/adapter.c +++ b/dlls/dxgi/adapter.c @@ -200,9 +200,8 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_GetDesc(IWineDXGIAdapter *iface, D if (!desc) return E_INVALIDARG; - if (FAILED(hr = dxgi_adapter_GetDesc1(iface, &desc1))) - return hr; - memcpy(desc, &desc1, sizeof(*desc)); + if (SUCCEEDED(hr = dxgi_adapter_GetDesc1(iface, &desc1))) + memcpy(desc, &desc1, sizeof(*desc)); return hr; }
1
0
0
0
← Newer
1
...
8
9
10
11
12
13
14
...
67
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Results per page:
10
25
50
100
200