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
October 2020
----- 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
1 participants
796 discussions
Start a n
N
ew thread
Zebediah Figura : strmbase: Print colorimetry information in strmbase_dump_media_type().
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: ff01e58f732e027164a95189d29d5c794c32754c URL:
https://source.winehq.org/git/wine.git/?a=commit;h=ff01e58f732e027164a95189…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Tue Oct 13 23:30:26 2020 -0500 strmbase: Print colorimetry information in strmbase_dump_media_type(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/strmbase/mediatype.c | 9 ++++++ include/dvdmedia.h | 1 + include/dxva.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) diff --git a/dlls/strmbase/mediatype.c b/dlls/strmbase/mediatype.c index c2560352aa..9544d1b8ba 100644 --- a/dlls/strmbase/mediatype.c +++ b/dlls/strmbase/mediatype.c @@ -21,6 +21,7 @@ #include "strmbase_private.h" #include "dvdmedia.h" +#include "dxva.h" WINE_DEFAULT_DEBUG_CHANNEL(strmbase); @@ -132,6 +133,14 @@ void strmbase_dump_media_type(const AM_MEDIA_TYPE *mt) if (vih->dwCopyProtectFlags) TRACE("copy-protection flags %#x, ", vih->dwCopyProtectFlags); TRACE("aspect ratio %u/%u, ", vih->dwPictAspectRatioX, vih->dwPictAspectRatioY); if (vih->u.dwControlFlags) TRACE("control flags %#x, ", vih->u.dwControlFlags); + if (vih->u.dwControlFlags & AMCONTROL_COLORINFO_PRESENT) + { + const DXVA_ExtendedFormat *colorimetry = (const DXVA_ExtendedFormat *)&vih->u.dwControlFlags; + + TRACE("chroma site %#x, range %#x, matrix %#x, lighting %#x, primaries %#x, transfer function %#x, ", + colorimetry->VideoChromaSubsampling, colorimetry->NominalRange, colorimetry->VideoTransferMatrix, + colorimetry->VideoLighting, colorimetry->VideoPrimaries, colorimetry->VideoTransferFunction); + } TRACE("size %dx%d, %u planes, %u bpp, compression %s, image size %u", vih->bmiHeader.biWidth, vih->bmiHeader.biHeight, vih->bmiHeader.biPlanes, vih->bmiHeader.biBitCount, debugstr_fourcc(vih->bmiHeader.biCompression), diff --git a/include/dvdmedia.h b/include/dvdmedia.h index daf1c9d37c..6e625b472f 100644 --- a/include/dvdmedia.h +++ b/include/dvdmedia.h @@ -22,6 +22,7 @@ #define AMCONTROL_USED 0x00000001 #define AMCONTROL_PAD_TO_4x3 0x00000002 #define AMCONTROL_PAD_TO_16x9 0x00000004 +#define AMCONTROL_COLORINFO_PRESENT 0x00000080 typedef struct tagVIDEOINFOHEADER2 { RECT rcSource; diff --git a/include/dxva.h b/include/dxva.h index 25354f5887..4f18f2e60d 100644 --- a/include/dxva.h +++ b/include/dxva.h @@ -565,6 +565,88 @@ typedef struct _DXVA_Status_VPx #include <poppack.h> +typedef enum _DXVA_VideoChromaSubsampling +{ + DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1, + DXVA_VideoChromaSubsampling_Vertically_Cosited = 0x2, + DXVA_VideoChromaSubsampling_Horizontally_Cosited = 0x4, + DXVA_VideoChromaSubsampling_ProgressiveChroma = 0x8, + + DXVA_VideoChromaSubsampling_Unknown = 0, + DXVA_VideoChromaSubsampling_Cosited = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes + | DXVA_VideoChromaSubsampling_Vertically_Cosited + | DXVA_VideoChromaSubsampling_Horizontally_Cosited, + DXVA_VideoChromaSubsampling_DV_PAL = DXVA_VideoChromaSubsampling_Vertically_Cosited + | DXVA_VideoChromaSubsampling_Horizontally_Cosited, + DXVA_VideoChromaSubsampling_MPEG1 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, + DXVA_VideoChromaSubsampling_MPEG2 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes + | DXVA_VideoChromaSubsampling_Horizontally_Cosited, +} DXVA_VideoChromaSubsampling; + +typedef enum _DXVA_NominalRange +{ + DXVA_NominalRange_Unknown = 0, + DXVA_NominalRange_0_255 = 1, + DXVA_NominalRange_16_235 = 2, + DXVA_NominalRange_48_208 = 3, + DXVA_NominalRange_Normal = DXVA_NominalRange_0_255, + DXVA_NominalRange_Wide = DXVA_NominalRange_16_235, +} DXVA_NominalRange; + +typedef enum _DXVA_VideoTransferMatrix +{ + DXVA_VideoTransferMatrix_Unknown = 0, + DXVA_VideoTransferMatrix_BT709 = 1, + DXVA_VideoTransferMatrix_BT601 = 2, + DXVA_VideoTransferMatrix_SMPTE240M = 3, +} DXVA_VideoTransferMatrix; + +typedef enum _DXVA_VideoLighting +{ + DXVA_VideoLighting_Unknown = 0, + DXVA_VideoLighting_bright = 1, + DXVA_VideoLighting_office = 2, + DXVA_VideoLighting_dim = 3, + DXVA_VideoLighting_dark = 4, +} DXVA_VideoLighting; + +typedef enum _DXVA_VideoPrimaries +{ + DXVA_VideoPrimaries_Unknown = 0, + DXVA_VideoPrimaries_reserved = 1, + DXVA_VideoPrimaries_BT709 = 2, + DXVA_VideoPrimaries_BT470_2_SysM = 3, + DXVA_VideoPrimaries_BT470_2_SysBG = 4, + DXVA_VideoPrimaries_SMPTE170M = 5, + DXVA_VideoPrimaries_SMPTE420M = 6, + DXVA_VideoPrimaries_EBU3213 = 7, + DXVA_VideoPrimaries_SMPTE_C = 8, +} DXVA_VideoPrimaries; + +typedef enum _DXVA_VideoTransferFunction +{ + DXVA_VideoTransFunc_Unknown = 0, + DXVA_VideoTransFunc_10 = 1, + DXVA_VideoTransFunc_18 = 2, + DXVA_VideoTransFunc_20 = 3, + DXVA_VideoTransFunc_22 = 4, + DXVA_VideoTransFunc_22_709 = 5, + DXVA_VideoTransFunc_22_240M = 6, + DXVA_VideoTransFunc_22_8bit_sRGB = 7, + DXVA_VideoTransFunc_28 = 8, +} DXVA_VideoTransferFunction; + +typedef struct _DXVA_ExtendedFormat +{ + UINT SampleFormat : 8; + UINT VideoChromaSubsampling : 4; + DXVA_NominalRange NominalRange : 3; + DXVA_VideoTransferMatrix VideoTransferMatrix : 3; + DXVA_VideoLighting VideoLighting : 4; + DXVA_VideoPrimaries VideoPrimaries : 5; + DXVA_VideoTransferFunction VideoTransferFunction : 5; +} DXVA_ExtendedFormat; + #ifdef __cplusplus } #endif
1
0
0
0
Paul Gofman : kernelbase: Fix status check in GetExitCodeProcess().
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: 976fa1b4919ded326c7322a623120881a584d8aa URL:
https://source.winehq.org/git/wine.git/?a=commit;h=976fa1b4919ded326c7322a6…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Oct 14 11:20:08 2020 +0300 kernelbase: Fix status check in GetExitCodeProcess(). Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/kernelbase/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/kernelbase/process.c b/dlls/kernelbase/process.c index 0f707f82d1..57f0721f39 100644 --- a/dlls/kernelbase/process.c +++ b/dlls/kernelbase/process.c @@ -746,7 +746,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetExitCodeProcess( HANDLE process, LPDWORD exit_c PROCESS_BASIC_INFORMATION pbi; status = NtQueryInformationProcess( process, ProcessBasicInformation, &pbi, sizeof(pbi), NULL ); - if (status && exit_code) *exit_code = pbi.ExitStatus; + if (!status && exit_code) *exit_code = pbi.ExitStatus; return set_ntstatus( status ); }
1
0
0
0
Georg Lehmann : winevulkan: Implement VK_EXT_debug_utils.
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: bff6bc6a79ffc3a915219a6dfe64c9bcabaaeceb URL:
https://source.winehq.org/git/wine.git/?a=commit;h=bff6bc6a79ffc3a915219a6d…
Author: Georg Lehmann <dadschoorse(a)gmail.com> Date: Tue Oct 13 19:28:37 2020 +0200 winevulkan: Implement VK_EXT_debug_utils. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=49813
Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com> Signed-off-by: Liam Middlebrook <lmiddlebrook(a)nvidia.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winevulkan/make_vulkan | 10 +- dlls/winevulkan/vulkan.c | 207 +++++++++++++++++++++++++++++++++++++++ dlls/winevulkan/vulkan_private.h | 29 ++++++ dlls/winevulkan/vulkan_thunks.c | 190 +++++++++++++++++++++++++++++++++++ dlls/winevulkan/vulkan_thunks.h | 83 +++++++++++++++- include/wine/vulkan.h | 109 +++++++++++++++++++++ 6 files changed, 626 insertions(+), 2 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=bff6bc6a79ffc3a91521…
1
0
0
0
Georg Lehmann : winevulkan: Store a mapping from native handles to wrappers.
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: af3d292343034b87403b1c8738e29bd3479fe87e URL:
https://source.winehq.org/git/wine.git/?a=commit;h=af3d292343034b87403b1c87…
Author: Georg Lehmann <dadschoorse(a)gmail.com> Date: Tue Oct 13 19:28:36 2020 +0200 winevulkan: Store a mapping from native handles to wrappers. Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com> Signed-off-by: Liam Middlebrook <lmiddlebrook(a)nvidia.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winevulkan/vulkan.c | 74 ++++++++++++++++++++++++++++++++++++++++ dlls/winevulkan/vulkan_private.h | 26 ++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 3d1e8bd0ab..c140ff3a0e 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -66,11 +66,59 @@ static VkResult (*p_vkEnumerateInstanceVersion)(uint32_t *version); void WINAPI wine_vkGetPhysicalDeviceProperties(VkPhysicalDevice physical_device, VkPhysicalDeviceProperties *properties); +#define WINE_VK_ADD_DISPATCHABLE_MAPPING(instance, object, native_handle) \ + wine_vk_add_handle_mapping((instance), (uint64_t) (uintptr_t) (object), (uint64_t) (uintptr_t) (native_handle), &(object)->mapping) +#define WINE_VK_ADD_NON_DISPATCHABLE_MAPPING(instance, object, native_handle) \ + wine_vk_add_handle_mapping((instance), (uint64_t) (uintptr_t) (object), (uint64_t) (native_handle), &(object)->mapping) +static void wine_vk_add_handle_mapping(struct VkInstance_T *instance, uint64_t wrapped_handle, + uint64_t native_handle, struct wine_vk_mapping *mapping) +{ + if (instance->enable_wrapper_list) + { + mapping->native_handle = native_handle; + mapping->wine_wrapped_handle = wrapped_handle; + AcquireSRWLockExclusive(&instance->wrapper_lock); + list_add_tail(&instance->wrappers, &mapping->link); + ReleaseSRWLockExclusive(&instance->wrapper_lock); + } +} + +#define WINE_VK_REMOVE_HANDLE_MAPPING(instance, object) \ + wine_vk_remove_handle_mapping((instance), &(object)->mapping) +static void wine_vk_remove_handle_mapping(struct VkInstance_T *instance, struct wine_vk_mapping *mapping) +{ + if (instance->enable_wrapper_list) + { + AcquireSRWLockExclusive(&instance->wrapper_lock); + list_remove(&mapping->link); + ReleaseSRWLockExclusive(&instance->wrapper_lock); + } +} + +static uint64_t wine_vk_get_wrapper(struct VkInstance_T *instance, uint64_t native_handle) +{ + struct wine_vk_mapping *mapping; + uint64_t result = 0; + + AcquireSRWLockShared(&instance->wrapper_lock); + LIST_FOR_EACH_ENTRY(mapping, &instance->wrappers, struct wine_vk_mapping, link) + { + if (mapping->native_handle == native_handle) + { + result = mapping->wine_wrapped_handle; + break; + } + } + ReleaseSRWLockShared(&instance->wrapper_lock); + return result; +} + static void wine_vk_physical_device_free(struct VkPhysicalDevice_T *phys_dev) { if (!phys_dev) return; + WINE_VK_REMOVE_HANDLE_MAPPING(phys_dev->instance, phys_dev); heap_free(phys_dev->extensions); heap_free(phys_dev); } @@ -91,6 +139,8 @@ static struct VkPhysicalDevice_T *wine_vk_physical_device_alloc(struct VkInstanc object->instance = instance; object->phys_dev = phys_dev; + WINE_VK_ADD_DISPATCHABLE_MAPPING(instance, object, phys_dev); + res = instance->funcs.p_vkEnumerateDeviceExtensionProperties(phys_dev, NULL, &num_host_properties, NULL); if (res != VK_SUCCESS) @@ -169,6 +219,7 @@ static void wine_vk_free_command_buffers(struct VkDevice_T *device, device->funcs.p_vkFreeCommandBuffers(device->device, pool->command_pool, 1, &buffers[i]->command_buffer); list_remove(&buffers[i]->pool_link); + WINE_VK_REMOVE_HANDLE_MAPPING(device->phys_dev->instance, buffers[i]); heap_free(buffers[i]); } } @@ -212,6 +263,8 @@ static struct VkQueue_T *wine_vk_device_alloc_queues(struct VkDevice_T *device, { device->funcs.p_vkGetDeviceQueue(device->device, family_index, i, &queue->queue); } + + WINE_VK_ADD_DISPATCHABLE_MAPPING(device->phys_dev->instance, queue, queue->queue); } return queues; @@ -294,6 +347,8 @@ static void wine_vk_device_free(struct VkDevice_T *device) unsigned int i; for (i = 0; i < device->max_queue_families; i++) { + if (device->queues[i] && device->queues[i]->queue) + WINE_VK_REMOVE_HANDLE_MAPPING(device->phys_dev->instance, device->queues[i]); heap_free(device->queues[i]); } heap_free(device->queues); @@ -302,6 +357,7 @@ static void wine_vk_device_free(struct VkDevice_T *device) if (device->device && device->funcs.p_vkDestroyDevice) { + WINE_VK_REMOVE_HANDLE_MAPPING(device->phys_dev->instance, device); device->funcs.p_vkDestroyDevice(device->device, NULL /* pAllocator */); } @@ -466,7 +522,10 @@ static void wine_vk_instance_free(struct VkInstance_T *instance) } if (instance->instance) + { vk_funcs->p_vkDestroyInstance(instance->instance, NULL /* allocator */); + WINE_VK_REMOVE_HANDLE_MAPPING(instance, instance); + } heap_free(instance); } @@ -512,6 +571,7 @@ VkResult WINAPI wine_vkAllocateCommandBuffers(VkDevice device, list_add_tail(&pool->command_buffers, &buffers[i]->pool_link); res = device->funcs.p_vkAllocateCommandBuffers(device->device, &allocate_info_host, &buffers[i]->command_buffer); + WINE_VK_ADD_DISPATCHABLE_MAPPING(device->phys_dev->instance, buffers[i], buffers[i]->command_buffer); if (res != VK_SUCCESS) { ERR("Failed to allocate command buffer, res=%d.\n", res); @@ -589,6 +649,7 @@ VkResult WINAPI wine_vkCreateDevice(VkPhysicalDevice phys_dev, return VK_ERROR_OUT_OF_HOST_MEMORY; object->base.loader_magic = VULKAN_ICD_MAGIC_VALUE; + object->phys_dev = phys_dev; res = wine_vk_device_convert_create_info(create_info, &create_info_host); if (res != VK_SUCCESS) @@ -597,6 +658,7 @@ VkResult WINAPI wine_vkCreateDevice(VkPhysicalDevice phys_dev, res = phys_dev->instance->funcs.p_vkCreateDevice(phys_dev->phys_dev, &create_info_host, NULL /* allocator */, &object->device); wine_vk_device_free_create_info(&create_info_host); + WINE_VK_ADD_DISPATCHABLE_MAPPING(phys_dev->instance, object, object->device); if (res != VK_SUCCESS) { WARN("Failed to create device, res=%d.\n", res); @@ -678,6 +740,8 @@ VkResult WINAPI wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, return VK_ERROR_OUT_OF_HOST_MEMORY; } object->base.loader_magic = VULKAN_ICD_MAGIC_VALUE; + list_init(&object->wrappers); + InitializeSRWLock(&object->wrapper_lock); res = wine_vk_instance_convert_create_info(create_info, &create_info_host, object); if (res != VK_SUCCESS) @@ -695,6 +759,8 @@ VkResult WINAPI wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, return res; } + WINE_VK_ADD_DISPATCHABLE_MAPPING(object, object, object->instance); + /* Load all instance functions we are aware of. Note the loader takes care * of any filtering for extensions which were not requested, but which the * ICD may support. @@ -1129,9 +1195,14 @@ VkResult WINAPI wine_vkCreateCommandPool(VkDevice device, const VkCommandPoolCre res = device->funcs.p_vkCreateCommandPool(device->device, info, NULL, &object->command_pool); if (res == VK_SUCCESS) + { + WINE_VK_ADD_NON_DISPATCHABLE_MAPPING(device->phys_dev->instance, object, object->command_pool); *command_pool = wine_cmd_pool_to_handle(object); + } else + { heap_free(object); + } return res; } @@ -1156,9 +1227,12 @@ void WINAPI wine_vkDestroyCommandPool(VkDevice device, VkCommandPool handle, */ LIST_FOR_EACH_ENTRY_SAFE(buffer, cursor, &pool->command_buffers, struct VkCommandBuffer_T, pool_link) { + WINE_VK_REMOVE_HANDLE_MAPPING(device->phys_dev->instance, buffer); heap_free(buffer); } + WINE_VK_REMOVE_HANDLE_MAPPING(device->phys_dev->instance, pool); + device->funcs.p_vkDestroyCommandPool(device->device, pool->command_pool, NULL); heap_free(pool); } diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index bf09401c52..959a813a21 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -60,6 +60,16 @@ struct wine_vk_base UINT_PTR loader_magic; }; +/* Some extensions have callbacks for those we need to be able to + * get the wine wrapper for a native handle + */ +struct wine_vk_mapping +{ + struct list link; + uint64_t native_handle; + uint64_t wine_wrapped_handle; +}; + struct VkCommandBuffer_T { struct wine_vk_base base; @@ -67,18 +77,22 @@ struct VkCommandBuffer_T VkCommandBuffer command_buffer; /* native command buffer */ struct list pool_link; + struct wine_vk_mapping mapping; }; struct VkDevice_T { struct wine_vk_base base; struct vulkan_device_funcs funcs; + struct VkPhysicalDevice_T *phys_dev; /* parent */ VkDevice device; /* native device */ struct VkQueue_T **queues; uint32_t max_queue_families; unsigned int quirks; + + struct wine_vk_mapping mapping; }; struct VkInstance_T @@ -93,7 +107,13 @@ struct VkInstance_T struct VkPhysicalDevice_T **phys_devs; uint32_t phys_dev_count; + VkBool32 enable_wrapper_list; + struct list wrappers; + SRWLOCK wrapper_lock; + unsigned int quirks; + + struct wine_vk_mapping mapping; }; struct VkPhysicalDevice_T @@ -104,6 +124,8 @@ struct VkPhysicalDevice_T VkExtensionProperties *extensions; uint32_t extension_count; + + struct wine_vk_mapping mapping; }; struct VkQueue_T @@ -113,6 +135,8 @@ struct VkQueue_T VkQueue queue; /* native queue */ VkDeviceQueueCreateFlags flags; + + struct wine_vk_mapping mapping; }; struct wine_cmd_pool @@ -120,6 +144,8 @@ struct wine_cmd_pool VkCommandPool command_pool; struct list command_buffers; + + struct wine_vk_mapping mapping; }; static inline struct wine_cmd_pool *wine_cmd_pool_from_handle(VkCommandPool handle)
1
0
0
0
Georg Lehmann : winevulkan: Generate helpers for wrapped handles.
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: e2518f6887f981f8f8f89807a0ca2bfba65dbeca URL:
https://source.winehq.org/git/wine.git/?a=commit;h=e2518f6887f981f8f8f89807…
Author: Georg Lehmann <dadschoorse(a)gmail.com> Date: Tue Oct 13 19:28:35 2020 +0200 winevulkan: Generate helpers for wrapped handles. Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com> Signed-off-by: Liam Middlebrook <lmiddlebrook(a)nvidia.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winevulkan/make_vulkan | 81 ++++++++++++++++++++++++++++++++++------ dlls/winevulkan/vulkan.c | 21 +---------- dlls/winevulkan/vulkan_private.h | 3 ++ dlls/winevulkan/vulkan_thunks.c | 32 ++++++++++++++++ 4 files changed, 106 insertions(+), 31 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=e2518f6887f981f8f8f8…
1
0
0
0
Myah Caron : kernelbase: Remove DECLSPEC_HOTPATCH for GetCommandLine[AW].
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: 8a1933bbe40b67d22d919861deed9a7a68684433 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=8a1933bbe40b67d22d919861…
Author: Myah Caron <qsniyg(a)protonmail.com> Date: Tue Oct 13 19:43:31 2020 +0000 kernelbase: Remove DECLSPEC_HOTPATCH for GetCommandLine[AW]. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=48861
Signed-off-by: Myah Caron <qsniyg(a)protonmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/kernelbase/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/kernelbase/process.c b/dlls/kernelbase/process.c index d5fedb4495..0f707f82d1 100644 --- a/dlls/kernelbase/process.c +++ b/dlls/kernelbase/process.c @@ -1278,7 +1278,7 @@ BOOL WINAPI BaseFlushAppcompatCache(void) /*********************************************************************** * GetCommandLineA (kernelbase.@) */ -LPSTR WINAPI DECLSPEC_HOTPATCH GetCommandLineA(void) +LPSTR WINAPI GetCommandLineA(void) { return command_lineA; } @@ -1287,7 +1287,7 @@ LPSTR WINAPI DECLSPEC_HOTPATCH GetCommandLineA(void) /*********************************************************************** * GetCommandLineW (kernelbase.@) */ -LPWSTR WINAPI DECLSPEC_HOTPATCH GetCommandLineW(void) +LPWSTR WINAPI GetCommandLineW(void) { return command_lineW; }
1
0
0
0
Myah Caron : kernelbase: Use command_lineW for GetCommandLineW.
by Alexandre Julliard
14 Oct '20
14 Oct '20
Module: wine Branch: master Commit: d01d3b749d7d99c75f29396fd79fab735ced2b2d URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d01d3b749d7d99c75f29396f…
Author: Myah Caron <qsniyg(a)protonmail.com> Date: Tue Oct 13 19:43:01 2020 +0000 kernelbase: Use command_lineW for GetCommandLineW. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=48861
Signed-off-by: Myah Caron <qsniyg(a)protonmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/kernel32/tests/process.c | 11 +++++++++++ dlls/kernelbase/process.c | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index 109322d684..7c6a0ff0a8 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -872,6 +872,7 @@ static void test_CommandLine(void) PROCESS_INFORMATION info; STARTUPINFOA startup; BOOL ret; + LPWSTR cmdline, cmdline_backup; memset(&startup, 0, sizeof(startup)); startup.cb = sizeof(startup); @@ -1074,6 +1075,16 @@ static void test_CommandLine(void) ret = CreateProcessA(NULL, buffer2, NULL, NULL, FALSE, 0L, NULL, NULL, &startup, &info); ok(!ret, "CreateProcessA unexpectedly succeeded\n"); ok(GetLastError() == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError()); + + /* Test whether GetCommandLineW reads directly from TEB or from a cached address */ + cmdline = GetCommandLineW(); + ok(cmdline == NtCurrentTeb()->Peb->ProcessParameters->CommandLine.Buffer, "Expected address from TEB, got %p\n", cmdline); + + cmdline_backup = cmdline; + NtCurrentTeb()->Peb->ProcessParameters->CommandLine.Buffer = NULL; + cmdline = GetCommandLineW(); + ok(cmdline == cmdline_backup, "Expected cached address from TEB, got %p\n", cmdline); + NtCurrentTeb()->Peb->ProcessParameters->CommandLine.Buffer = cmdline_backup; } static void test_Directory(void) diff --git a/dlls/kernelbase/process.c b/dlls/kernelbase/process.c index e7998c00f2..d5fedb4495 100644 --- a/dlls/kernelbase/process.c +++ b/dlls/kernelbase/process.c @@ -1289,7 +1289,7 @@ LPSTR WINAPI DECLSPEC_HOTPATCH GetCommandLineA(void) */ LPWSTR WINAPI DECLSPEC_HOTPATCH GetCommandLineW(void) { - return NtCurrentTeb()->Peb->ProcessParameters->CommandLine.Buffer; + return command_lineW; }
1
0
0
0
Alistair Leslie-Hughes : xactengine3_7: Initial IXACT3Engine tests.
by Alexandre Julliard
13 Oct '20
13 Oct '20
Module: wine Branch: master Commit: f4a66ad257df4605e73dfea792eec55a70a04e84 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f4a66ad257df4605e73dfea7…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Wed Oct 7 17:51:58 2020 +1100 xactengine3_7: Initial IXACT3Engine tests. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 1 + configure.ac | 1 + dlls/xactengine3_7/tests/Makefile.in | 5 ++ dlls/xactengine3_7/tests/xact3.c | 100 +++++++++++++++++++++++++++++++++++ 4 files changed, 107 insertions(+) diff --git a/configure b/configure index 31a26763ae..5672688a0d 100755 --- a/configure +++ b/configure @@ -21168,6 +21168,7 @@ wine_fn_config_makefile dlls/xactengine3_4 enable_xactengine3_4 wine_fn_config_makefile dlls/xactengine3_5 enable_xactengine3_5 wine_fn_config_makefile dlls/xactengine3_6 enable_xactengine3_6 wine_fn_config_makefile dlls/xactengine3_7 enable_xactengine3_7 +wine_fn_config_makefile dlls/xactengine3_7/tests enable_tests wine_fn_config_makefile dlls/xapofx1_1 enable_xapofx1_1 wine_fn_config_makefile dlls/xapofx1_2 enable_xapofx1_2 wine_fn_config_makefile dlls/xapofx1_3 enable_xapofx1_3 diff --git a/configure.ac b/configure.ac index 865aa924d0..a57697a0dd 100644 --- a/configure.ac +++ b/configure.ac @@ -3915,6 +3915,7 @@ WINE_CONFIG_MAKEFILE(dlls/xactengine3_4) WINE_CONFIG_MAKEFILE(dlls/xactengine3_5) WINE_CONFIG_MAKEFILE(dlls/xactengine3_6) WINE_CONFIG_MAKEFILE(dlls/xactengine3_7) +WINE_CONFIG_MAKEFILE(dlls/xactengine3_7/tests) WINE_CONFIG_MAKEFILE(dlls/xapofx1_1) WINE_CONFIG_MAKEFILE(dlls/xapofx1_2) WINE_CONFIG_MAKEFILE(dlls/xapofx1_3) diff --git a/dlls/xactengine3_7/tests/Makefile.in b/dlls/xactengine3_7/tests/Makefile.in new file mode 100644 index 0000000000..c32b256254 --- /dev/null +++ b/dlls/xactengine3_7/tests/Makefile.in @@ -0,0 +1,5 @@ +TESTDLL = xactengine3_7.dll +IMPORTS = ole32 + +C_SRCS = \ + xact3.c diff --git a/dlls/xactengine3_7/tests/xact3.c b/dlls/xactengine3_7/tests/xact3.c new file mode 100644 index 0000000000..9b0d3defb0 --- /dev/null +++ b/dlls/xactengine3_7/tests/xact3.c @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2020 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <windows.h> +#include <math.h> +#include <limits.h> +#include <float.h> + +#define COBJMACROS +#include "wine/test.h" + +#include "x3daudio.h" + +#include "initguid.h" +#include "xact3.h" + +DEFINE_GUID(IID_IXACT3Engine30, 0x9e33f661, 0x2d07, 0x43ec, 0x97, 0x04, 0xbb, 0xcb, 0x71, 0xa5, 0x49, 0x72); +DEFINE_GUID(IID_IXACT3Engine31, 0xe72c1b9a, 0xd717, 0x41c0, 0x81, 0xa6, 0x50, 0xeb, 0x56, 0xe8, 0x06, 0x49); + +DEFINE_GUID(CLSID_XACTEngine30, 0x3b80ee2a, 0xb0f5, 0x4780, 0x9e, 0x30, 0x90, 0xcb, 0x39, 0x68, 0x5b, 0x03); +DEFINE_GUID(CLSID_XACTEngine31, 0x962f5027, 0x99be, 0x4692, 0xa4, 0x68, 0x85, 0x80, 0x2c, 0xf8, 0xde, 0x61); +DEFINE_GUID(CLSID_XACTEngine32, 0xd3332f02, 0x3dd0, 0x4de9, 0x9a, 0xec, 0x20, 0xd8, 0x5c, 0x41, 0x11, 0xb6); +DEFINE_GUID(CLSID_XACTEngine33, 0x94c1affa, 0x66e7, 0x4961, 0x95, 0x21, 0xcf, 0xde, 0xf3, 0x12, 0x8d, 0x4f); +DEFINE_GUID(CLSID_XACTEngine34, 0x0977d092, 0x2d95, 0x4e43, 0x8d, 0x42, 0x9d, 0xdc, 0xc2, 0x54, 0x5e, 0xd5); +DEFINE_GUID(CLSID_XACTEngine35, 0x074b110f, 0x7f58, 0x4743, 0xae, 0xa5, 0x12, 0xf1, 0x5b, 0x50, 0x74, 0xed); +DEFINE_GUID(CLSID_XACTEngine36, 0x248d8a3b, 0x6256, 0x44d3, 0xa0, 0x18, 0x2a, 0xc9, 0x6c, 0x45, 0x9f, 0x47); + +struct xact_interfaces +{ + REFGUID clsid; + REFIID iid; + HRESULT expected; +} xact_interfaces[] = +{ + {&CLSID_XACTEngine30, &IID_IXACT3Engine30, S_OK }, + {&CLSID_XACTEngine30, &IID_IXACT3Engine31, E_NOINTERFACE}, + {&CLSID_XACTEngine30, &IID_IXACT3Engine, E_NOINTERFACE }, + + /* Version 3.1 to 3.4 use the same inteface */ + {&CLSID_XACTEngine31, &IID_IXACT3Engine31, S_OK }, + {&CLSID_XACTEngine32, &IID_IXACT3Engine31, S_OK }, + {&CLSID_XACTEngine33, &IID_IXACT3Engine31, S_OK }, + {&CLSID_XACTEngine34, &IID_IXACT3Engine31, S_OK }, + + /* Version 3.5 to 3.7 use the same inteface */ + {&CLSID_XACTEngine35, &IID_IXACT3Engine31, E_NOINTERFACE }, + {&CLSID_XACTEngine35, &IID_IXACT3Engine, S_OK }, + + {&CLSID_XACTEngine36, &IID_IXACT3Engine31, E_NOINTERFACE }, + {&CLSID_XACTEngine36, &IID_IXACT3Engine, S_OK }, + + {&CLSID_XACTEngine, &IID_IXACT3Engine31, E_NOINTERFACE }, + {&CLSID_XACTEngine, &IID_IXACT3Engine, S_OK }, + {&CLSID_XACTEngine, &IID_IUnknown, S_OK }, +}; + +static void test_interfaces(void) +{ + IUnknown *unk; + HRESULT hr; + int i; + + for (i = 0; i < ARRAY_SIZE(xact_interfaces); i++) + { + hr = CoCreateInstance(xact_interfaces[i].clsid, NULL, CLSCTX_INPROC_SERVER, + xact_interfaces[i].iid, (void**)&unk); + if (hr == REGDB_E_CLASSNOTREG) + { + trace("%d %s not registered. Skipping\n", i, wine_dbgstr_guid(xact_interfaces[i].clsid) ); + continue; + } + ok(hr == xact_interfaces[i].expected, "%d, Unexpected value 0x%08x\n", i, hr); + if (hr == S_OK) + IUnknown_Release(unk); + } +} + +START_TEST(xact3) +{ + CoInitialize(NULL); + + test_interfaces(); + + CoUninitialize(); +}
1
0
0
0
Brendan Shanks : mountmgr: Avoid unnecessary permission prompts on macOS 10.15 and newer.
by Alexandre Julliard
13 Oct '20
13 Oct '20
Module: wine Branch: master Commit: 33c8a4254715c5f3b71b23fc657c6ba5eee94ce9 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=33c8a4254715c5f3b71b23fc…
Author: Brendan Shanks <bshanks(a)codeweavers.com> Date: Tue Oct 6 13:36:28 2020 -0700 mountmgr: Avoid unnecessary permission prompts on macOS 10.15 and newer. On macOS 10.15 and newer, trying to open the device node of a removable drive will trigger an "<app> would like to access files on a removable volume" permission prompt, even if the user doesn't have permissions to access the device node (which is almost always the case). Check the value of access() (recommended by Apple for this purpose) before opening devices. Signed-off-by: Brendan Shanks <bshanks(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mountmgr.sys/device.c | 9 +++++++++ dlls/mountmgr.sys/diskarb.c | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c index ccb0685ced..6db088f11e 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c @@ -26,6 +26,7 @@ #include <stdarg.h> #include <stdio.h> #include <fcntl.h> +#include <unistd.h> #include <sys/time.h> #ifdef HAVE_SYS_IOCTL_H # include <sys/ioctl.h> @@ -1026,6 +1027,14 @@ static BOOL get_volume_device_info( struct volume *volume ) if (!unix_device) return FALSE; +#ifdef __APPLE__ + if (access( unix_device, R_OK )) + { + WARN("Unable to open %s, not accessible\n", debugstr_a(unix_device)); + return FALSE; + } +#endif + if (!(name = wine_get_dos_file_name( unix_device ))) { ERR("Failed to convert %s to NT, err %u\n", debugstr_a(unix_device), GetLastError()); diff --git a/dlls/mountmgr.sys/diskarb.c b/dlls/mountmgr.sys/diskarb.c index 12da89d768..25e0745372 100644 --- a/dlls/mountmgr.sys/diskarb.c +++ b/dlls/mountmgr.sys/diskarb.c @@ -25,6 +25,7 @@ #include <errno.h> #include <stdarg.h> #include <stdio.h> +#include <unistd.h> #ifdef HAVE_SYS_IOCTL_H # include <sys/ioctl.h> #endif @@ -150,7 +151,8 @@ static void appeared_callback( DADiskRef disk, void *context ) else if (guid_ptr) add_volume( device, device, mount_point, DEVICE_HARDDISK_VOL, guid_ptr, NULL ); - if ((fd = open( device, O_RDONLY )) >= 0) + if (!access( device, R_OK ) && + (fd = open( device, O_RDONLY )) >= 0) { dk_scsi_identify_t dsi;
1
0
0
0
Arkadiusz Hiler : user32: Implement GetMouseMovePointsEx().
by Alexandre Julliard
13 Oct '20
13 Oct '20
Module: wine Branch: master Commit: f7edc328184c4755c81dec5372b3ae5ac7b8c5df URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f7edc328184c4755c81dec53…
Author: Arkadiusz Hiler <ahiler(a)codeweavers.com> Date: Sat Oct 3 02:44:16 2020 +0300 user32: Implement GetMouseMovePointsEx(). Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=36873
Signed-off-by: Arkadiusz Hiler <ahiler(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/input.c | 58 ++++++++++-- dlls/user32/tests/input.c | 200 ++++++++++++++++++++++++++++++++++++++++- include/wine/server_protocol.h | 26 +++++- server/protocol.def | 15 ++++ server/queue.c | 31 ++++++- server/request.h | 4 + server/trace.c | 31 +++++++ 7 files changed, 352 insertions(+), 13 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=f7edc328184c4755c81d…
1
0
0
0
← Newer
1
...
36
37
38
39
40
41
42
...
80
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
68
69
70
71
72
73
74
75
76
77
78
79
80
Results per page:
10
25
50
100
200