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
March 2024
----- 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
775 discussions
Start a n
N
ew thread
Aida Jonikienė : wbemprox: Stub most of the Win32_VideoController properties.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: wine Branch: master Commit: 7a529fc94f49c064c0a69a33a2251a408dff5155 URL:
https://gitlab.winehq.org/wine/wine/-/commit/7a529fc94f49c064c0a69a33a2251a…
Author: Aida Jonikienė <aidas957(a)gmail.com> Date: Thu Mar 21 16:43:57 2024 +0200 wbemprox: Stub most of the Win32_VideoController properties. Tomato Jones II queries most of these properties and errors out if any of them aren't found. --- dlls/wbemprox/builtin.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index f6991ac2d8a..8a7a092cee1 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -463,27 +463,62 @@ static const struct column col_sysrestore[] = }; static const struct column col_videocontroller[] = { + { L"AcceleratorCapabilities", CIM_UINT16|CIM_FLAG_ARRAY }, { L"AdapterCompatibility", CIM_STRING }, { L"AdapterDACType", CIM_STRING }, { L"AdapterRAM", CIM_UINT32 }, { L"Availability", CIM_UINT16 }, + { L"CapabilityDescriptions", CIM_STRING|CIM_FLAG_ARRAY }, { L"Caption", CIM_STRING|COL_FLAG_DYNAMIC }, + { L"ColorTableEntries", CIM_UINT32 }, { L"ConfigManagerErrorCode", CIM_UINT32 }, + { L"ConfigManagerUserConfig", CIM_BOOLEAN }, + { L"CreationClassName", CIM_STRING }, { L"CurrentBitsPerPixel", CIM_UINT32 }, { L"CurrentHorizontalResolution", CIM_UINT32 }, + { L"CurrentNumberOfColors", CIM_UINT64 }, + { L"CurrentNumberOfColumns", CIM_UINT32 }, + { L"CurrentNumberOfRows", CIM_UINT32 }, { L"CurrentRefreshRate", CIM_UINT32 }, { L"CurrentScanMode", CIM_UINT16 }, { L"CurrentVerticalResolution", CIM_UINT32 }, { L"Description", CIM_STRING|COL_FLAG_DYNAMIC }, { L"DeviceId", CIM_STRING|COL_FLAG_KEY }, + { L"DeviceSpecificPens", CIM_UINT32 }, + { L"DitherType", CIM_UINT32 }, { L"DriverDate", CIM_DATETIME }, { L"DriverVersion", CIM_STRING }, + { L"ErrorCleared", CIM_BOOLEAN }, + { L"ErrorDescription", CIM_STRING }, + { L"ICMIntent", CIM_UINT32 }, + { L"ICMMethod", CIM_UINT32 }, + { L"InfFilename", CIM_STRING }, + { L"InfSection", CIM_STRING }, { L"InstalledDisplayDrivers", CIM_STRING }, + { L"LastErrorCode", CIM_UINT32 }, + { L"MaxMemorySupported", CIM_UINT32 }, + { L"MaxNumberControlled", CIM_UINT32 }, + { L"MaxRefreshRate", CIM_UINT32 }, + { L"MinRefreshRate", CIM_UINT32 }, + { L"Monochrome", CIM_BOOLEAN }, { L"Name", CIM_STRING|COL_FLAG_DYNAMIC }, + { L"NumberOfColorPlanes", CIM_UINT16 }, + { L"NumberofVideoPages", CIM_UINT32 }, { L"PNPDeviceID", CIM_STRING|COL_FLAG_DYNAMIC }, + { L"PowerManagementCapabilities", CIM_UINT16|CIM_FLAG_ARRAY }, + { L"PowerManagementSupported", CIM_BOOLEAN }, + { L"ProtocolSupported", CIM_UINT16 }, + { L"ReservedSystemPaletteEntries", CIM_UINT32 }, + { L"SpecificationVersion", CIM_UINT32 }, { L"Status", CIM_STRING }, + { L"StatusInfo", CIM_UINT16 }, + { L"SystemCreationClassName", CIM_STRING }, + { L"SystemName", CIM_STRING }, + { L"SystemPaletteEntries", CIM_UINT32 }, + { L"TimeOfLastReset", CIM_DATETIME }, { L"VideoArchitecture", CIM_UINT16 }, { L"VideoMemoryType", CIM_UINT16 }, + { L"VideoMode", CIM_UINT16 }, { L"VideoModeDescription", CIM_STRING|COL_FLAG_DYNAMIC }, { L"VideoProcessor", CIM_STRING|COL_FLAG_DYNAMIC }, }; @@ -918,27 +953,62 @@ struct record_systemenclosure }; struct record_videocontroller { + const struct array *accelerator_caps; const WCHAR *adapter_compatibility; const WCHAR *adapter_dactype; UINT32 adapter_ram; UINT16 availability; + const struct array *capability_desc; const WCHAR *caption; + UINT32 color_table_entries; UINT32 config_errorcode; + int config_userconfig; + const WCHAR *creation_class_name; UINT32 current_bitsperpixel; UINT32 current_horizontalres; + UINT64 current_numcolors; + UINT32 current_numcolumns; + UINT32 current_numrows; UINT32 current_refreshrate; UINT16 current_scanmode; UINT32 current_verticalres; const WCHAR *description; const WCHAR *device_id; + UINT32 device_pens; + UINT32 dither_type; const WCHAR *driverdate; const WCHAR *driverversion; + int error_cleared; + const WCHAR *error_desc; + UINT32 icm_intent; + UINT32 icm_method; + const WCHAR *inf_name; + const WCHAR *infsection; const WCHAR *installeddriver; + UINT32 lasterror; + UINT32 max_memory; + UINT32 max_number; + UINT32 max_refresh; + UINT32 min_refresh; + int monochrome; const WCHAR *name; + UINT16 number_planes; + UINT32 number_pages; const WCHAR *pnpdevice_id; + const struct array *power_caps; + int power_supported; + UINT16 protocol_supported; + UINT32 reserved_entries; + UINT32 spec_version; const WCHAR *status; + UINT16 status_info; + const WCHAR *systemclass_name; + const WCHAR *system_name; + UINT32 system_entries; + const WCHAR *time_reset; UINT16 videoarchitecture; UINT16 videomemorytype; + UINT16 videomode; const WCHAR *videomodedescription; const WCHAR *videoprocessor; }; @@ -4192,12 +4262,13 @@ static enum fill_status fill_videocontroller( struct table *table, const struct } rec = (struct record_videocontroller *)table->data; + memset( rec, 0, sizeof(*rec) ); rec->adapter_compatibility = L"(Standard display types)"; rec->adapter_dactype = L"Integrated RAMDAC"; rec->adapter_ram = vidmem; rec->availability = 3; /* Running or Full Power */ - rec->config_errorcode = 0; /* no error */ rec->caption = wcsdup( name ); + rec->config_errorcode = 0; /* no error */ rec->current_bitsperpixel = get_bitsperpixel( &hres, &vres ); rec->current_horizontalres = hres; rec->current_refreshrate = 0; /* default refresh rate */
1
0
0
0
Esme Povirk : user32/tests: Revert test updates for win11.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: wine Branch: master Commit: 60059bf744efe82f268f085f97aed17c6ec5b5b2 URL:
https://gitlab.winehq.org/wine/wine/-/commit/60059bf744efe82f268f085f97aed1…
Author: Esme Povirk <esme(a)codeweavers.com> Date: Wed Mar 27 17:28:14 2024 +0000 user32/tests: Revert test updates for win11. --- dlls/user32/tests/msg.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 473b4cfd4a1..8ed608c5d3b 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -2175,11 +2175,7 @@ static const struct message WmTrackPopupMenuMinimizeWindow[] = { { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam|optional, 0, 0 }, /* Win7 seems to send this twice. */ { EVENT_SYSTEM_MINIMIZESTART, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, - { HCBT_ACTIVATE, hook|optional }, /* win11 */ - { WM_NCACTIVATE, sent|optional }, /* win11 */ - { WM_ACTIVATE, sent|optional }, /* win11 */ - { EVENT_SYSTEM_FOREGROUND, winevent_hook|wparam|lparam|optional, 0, 0 }, /* win11 */ - { WM_CANCELMODE, sent|optional }, /* not always sent on win11 */ + { WM_CANCELMODE, sent }, { EVENT_SYSTEM_CAPTUREEND, winevent_hook|wparam|lparam|winevent_hook_todo, 0, 0 }, { WM_CAPTURECHANGED, sent|defwinproc }, { EVENT_SYSTEM_MENUPOPUPEND, winevent_hook|wparam|lparam|winevent_hook_todo, OBJID_CLIENT, 0 },
1
0
0
0
Rémi Bernon : winegstreamer: Set GST_DEBUG if not set, based on WINEDEBUG channels.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: wine Branch: master Commit: 8f58b9e1e1a3a8a51ef1db99f6e2e75742984bc8 URL:
https://gitlab.winehq.org/wine/wine/-/commit/8f58b9e1e1a3a8a51ef1db99f6e2e7…
Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Tue Mar 26 16:51:37 2024 +0100 winegstreamer: Set GST_DEBUG if not set, based on WINEDEBUG channels. --- dlls/winegstreamer/main.c | 10 +++++++++- dlls/winegstreamer/unixlib.c | 9 +++++++++ dlls/winegstreamer/unixlib.h | 7 +++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c index 74a6eee5b1d..d4f5db04a15 100644 --- a/dlls/winegstreamer/main.c +++ b/dlls/winegstreamer/main.c @@ -33,6 +33,8 @@ #include "wmcodecdsp.h" WINE_DEFAULT_DEBUG_CHANNEL(quartz); +WINE_DECLARE_DEBUG_CHANNEL(mfplat); +WINE_DECLARE_DEBUG_CHANNEL(wmvcore); DEFINE_GUID(GUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); DEFINE_GUID(MEDIASUBTYPE_VC1S,MAKEFOURCC('V','C','1','S'),0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); @@ -810,9 +812,15 @@ HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID iid, void **out) static BOOL CALLBACK init_gstreamer_proc(INIT_ONCE *once, void *param, void **ctx) { + struct wg_init_gstreamer_params params = + { + .trace_on = TRACE_ON(mfplat) || TRACE_ON(quartz) || TRACE_ON(wmvcore), + .warn_on = WARN_ON(mfplat) || WARN_ON(quartz) || WARN_ON(wmvcore), + .err_on = ERR_ON(mfplat) || ERR_ON(quartz) || ERR_ON(wmvcore), + }; HINSTANCE handle; - if (WINE_UNIX_CALL(unix_wg_init_gstreamer, NULL)) + if (WINE_UNIX_CALL(unix_wg_init_gstreamer, ¶ms)) return FALSE; /* Unloading glib is a bad idea.. it installs atexit handlers, diff --git a/dlls/winegstreamer/unixlib.c b/dlls/winegstreamer/unixlib.c index a2ec66e1990..175ab92ecdc 100644 --- a/dlls/winegstreamer/unixlib.c +++ b/dlls/winegstreamer/unixlib.c @@ -246,6 +246,7 @@ bool push_event(GstPad *pad, GstEvent *event) NTSTATUS wg_init_gstreamer(void *arg) { + struct wg_init_gstreamer_params *params = arg; char arg0[] = "wine"; char arg1[] = "--gst-disable-registry-fork"; char *args[] = {arg0, arg1, NULL}; @@ -253,6 +254,14 @@ NTSTATUS wg_init_gstreamer(void *arg) char **argv = args; GError *err; + if (params->trace_on) + setenv("GST_DEBUG", "WINE:9,4", FALSE); + if (params->warn_on) + setenv("GST_DEBUG", "3", FALSE); + if (params->err_on) + setenv("GST_DEBUG", "1", FALSE); + setenv("GST_DEBUG_NO_COLOR", "1", FALSE); + /* GStreamer installs a temporary SEGV handler when it loads plugins * to initialize its registry calling exit(-1) when any fault is caught. * We need to make sure any signal reaches our signal handlers to catch diff --git a/dlls/winegstreamer/unixlib.h b/dlls/winegstreamer/unixlib.h index 4ec9fce515e..5b1b6ffa7ba 100644 --- a/dlls/winegstreamer/unixlib.h +++ b/dlls/winegstreamer/unixlib.h @@ -218,6 +218,13 @@ typedef UINT64 wg_parser_stream_t; typedef UINT64 wg_transform_t; typedef UINT64 wg_muxer_t; +struct wg_init_gstreamer_params +{ + UINT8 trace_on; + UINT8 warn_on; + UINT8 err_on; +}; + struct wg_parser_create_params { wg_parser_t parser;
1
0
0
0
Zebediah Figura : tests: Add more tests for resource and struct RDEF contents.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: ddfa94fdca0c34e11f0ce7c22e2b72041f2d623e URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/ddfa94fdca0c34e11f0ce7c22e2b7…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Jan 13 18:53:38 2024 -0600 tests: Add more tests for resource and struct RDEF contents. --- tests/hlsl_d3d12.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 10 deletions(-) diff --git a/tests/hlsl_d3d12.c b/tests/hlsl_d3d12.c index 920bbe69..4d03efd5 100644 --- a/tests/hlsl_d3d12.c +++ b/tests/hlsl_d3d12.c @@ -1370,7 +1370,7 @@ static void test_reflection(void) " float3x1 o;\n" " float4 p;\n" " float q;\n" - " struct r_name {float a;} r;\n" + " struct r_name {float a; float4 b;} r;\n" " column_major float3x1 t;\n" "};\n" "\n" @@ -1407,6 +1407,7 @@ static void test_reflection(void) static const D3D12_SHADER_TYPE_DESC r_field_types[] = { {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}, + {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 4, 0, 0, 0, "float4"}, }; static const struct shader_variable globals_vars = @@ -1429,8 +1430,8 @@ static void test_reflection(void) {{"o", 176, 36, D3D_SVF_USED, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_MATRIX_ROWS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}}, {{"p", 224, 16, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_VECTOR, D3D_SVT_FLOAT, 1, 4, 0, 0, 0, "float4"}}, {{"q", 240, 4, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}}, - {{"r", 256, 4, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 1, 0, ARRAY_SIZE(r_field_types), 0, "r_name"}, r_field_types}, - {{"t", 260, 12, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}}, + {{"r", 256, 32, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 5, 0, ARRAY_SIZE(r_field_types), 0, "r_name"}, r_field_types}, + {{"t", 288, 12, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}}, }; static const struct shader_variable b5_vars = {{"u", 0, 16, D3D_SVF_USED, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_VECTOR, D3D_SVT_FLOAT, 1, 4, 0, 0, 0, "float4"}}; @@ -1439,7 +1440,7 @@ static void test_reflection(void) { {{"$Globals", D3D_CT_CBUFFER, 1, 16}, &globals_vars}, {{"$Params", D3D_CT_CBUFFER, 1, 16}, ¶ms_vars}, - {{"b1", D3D_CT_CBUFFER, ARRAY_SIZE(buffer_vars), 272}, buffer_vars}, + {{"b1", D3D_CT_CBUFFER, ARRAY_SIZE(buffer_vars), 304}, buffer_vars}, {{"b5", D3D_CT_CBUFFER, 1, 16}, &b5_vars}, }; @@ -1466,11 +1467,35 @@ static void test_reflection(void) " foo = bar + 2;\n" "};\n" "sampler2D g;\n" - "sampler b : register(s5);\n" + "sampler b : register(s7);\n" + "struct\n" + "{\n" + " float a;\n" + " Texture1D<int2> b;\n" + " float c;\n" + " Texture2D d;\n" + "} h : register(t7);\n" + "struct\n" + "{\n" + " float a;\n" + " Texture2D b;\n" + " SamplerState c;\n" + "} i;\n" + "struct\n" + "{\n" + " Texture2D b;\n" + " SamplerState c;\n" + "} j;\n" + "struct\n" + "{\n" + " Texture2D a;\n" + " Texture1DArray<float> b;\n" + " struct { SamplerState a; } c;\n" + "} k;\n" "float4 main(float2 pos : texcoord) : SV_TARGET\n" "{\n" " return a.Sample(b, pos) + a.Sample(c, pos) + a.Sample(d, pos) + tex2D(f, pos) + tex2D(e, pos)" - " + tex2D(g, pos);\n" + " + tex2D(g, pos) + h.b.Load(h.c).x + k.b.Sample(k.c.a, pos);\n" "}"; static const D3D12_SHADER_INPUT_BIND_DESC ps_bindings[] = @@ -1480,11 +1505,36 @@ static void test_reflection(void) {"e", D3D_SIT_SAMPLER, 2, 1}, {"f", D3D_SIT_SAMPLER, 3, 1}, {"g", D3D_SIT_SAMPLER, 4, 1}, - {"b", D3D_SIT_SAMPLER, 5, 1, D3D_SIF_USERPACKED}, + {"k.c.a", D3D_SIT_SAMPLER, 5, 1}, + {"b", D3D_SIT_SAMPLER, 7, 1, D3D_SIF_USERPACKED}, {"f", D3D_SIT_TEXTURE, 0, 1, D3D_SIF_TEXTURE_COMPONENTS, D3D_RETURN_TYPE_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, ~0u}, {"e", D3D_SIT_TEXTURE, 1, 1, D3D_SIF_TEXTURE_COMPONENTS, D3D_RETURN_TYPE_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, ~0u}, {"g", D3D_SIT_TEXTURE, 2, 1, D3D_SIF_TEXTURE_COMPONENTS, D3D_RETURN_TYPE_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, ~0u}, {"a", D3D_SIT_TEXTURE, 3, 1, D3D_SIF_TEXTURE_COMPONENTS, D3D_RETURN_TYPE_FLOAT, D3D_SRV_DIMENSION_TEXTURE2D, ~0u}, + {"k.b", D3D_SIT_TEXTURE, 5, 1, 0, D3D_RETURN_TYPE_FLOAT, D3D_SRV_DIMENSION_TEXTURE1DARRAY, ~0u}, + {"h.b", D3D_SIT_TEXTURE, 7, 1, D3D_SIF_USERPACKED | D3D_SIF_TEXTURE_COMPONENT_0, D3D_RETURN_TYPE_SINT, D3D_SRV_DIMENSION_TEXTURE1D, ~0u}, + {"$Globals", D3D_SIT_CBUFFER, 0, 1}, + }; + + static const D3D12_SHADER_TYPE_DESC ps_h_field_types[] = + { + {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}, + {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}, + }; + + static const D3D12_SHADER_TYPE_DESC ps_i_field_types[] = + { + {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}, + }; + + static const struct shader_variable ps_globals_vars[] = + { + {{"h", 0, 8, D3D_SVF_USED, NULL, 7, 1, ~0u, 0}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 4, 0, ARRAY_SIZE(ps_h_field_types), 0, "<unnamed>"}, ps_h_field_types}, + {{"i", 16, 4, 0, NULL, ~0u, 0, ~0u, 0}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 3, 0, ARRAY_SIZE(ps_i_field_types), 0, "<unnamed>"}, ps_i_field_types}, + }; + static const struct shader_buffer ps_buffers[] = + { + {{"$Globals", D3D_CT_CBUFFER, ARRAY_SIZE(ps_globals_vars), 32}, ps_globals_vars}, }; static const struct @@ -1499,7 +1549,7 @@ static void test_reflection(void) tests[] = { {vs_source, "vs_5_0", vs_bindings, ARRAY_SIZE(vs_bindings), vs_buffers, ARRAY_SIZE(vs_buffers)}, - {ps_source, "ps_5_0", ps_bindings, ARRAY_SIZE(ps_bindings)}, + {ps_source, "ps_5_0", ps_bindings, ARRAY_SIZE(ps_bindings), ps_buffers, ARRAY_SIZE(ps_buffers)}, }; for (unsigned int t = 0; t < ARRAY_SIZE(tests); ++t) @@ -1555,8 +1605,9 @@ static void test_reflection(void) ok(!var_desc.DefaultValue, "Got default value %p.\n", var_desc.DefaultValue); todo ok(var_desc.StartTexture == expect->var_desc.StartTexture, "Got texture offset %u.\n", var_desc.StartTexture); - ok(var_desc.TextureSize == expect->var_desc.TextureSize, - "Got texture size %u.\n", var_desc.TextureSize); + todo_if (expect->var_desc.TextureSize) + ok(var_desc.TextureSize == expect->var_desc.TextureSize, + "Got texture size %u.\n", var_desc.TextureSize); todo ok(var_desc.StartSampler == expect->var_desc.StartSampler, "Got sampler offset %u.\n", var_desc.StartSampler); ok(var_desc.SamplerSize == expect->var_desc.SamplerSize,
1
0
0
0
Zebediah Figura : tests: Test constant and resource reflection via D3DReflect().
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: 98b90dde787ec428843e945edee55190dfda64c1 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/98b90dde787ec428843e945edee55…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Jan 6 19:20:08 2024 -0600 tests: Test constant and resource reflection via D3DReflect(). Ported from Wine. --- tests/hlsl_d3d12.c | 290 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+)
1
0
0
0
Zebediah Figura : vkd3d-shader/tpf: Set the user-packed flag for sm5.0 resources as well.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: 2247288003ef62507f196fe1fc7659e2f5da9dd7 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/2247288003ef62507f196fe1fc765…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Jan 13 18:53:01 2024 -0600 vkd3d-shader/tpf: Set the user-packed flag for sm5.0 resources as well. --- libs/vkd3d-shader/tpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index 038a97d9..4d065831 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -3285,7 +3285,7 @@ static struct extern_resource *sm4_get_extern_resources(struct hlsl_ctx *ctx, un extern_resources[*count].name = name; extern_resources[*count].data_type = component_type; - extern_resources[*count].is_user_packed = false; + extern_resources[*count].is_user_packed = !!var->reg_reservation.reg_type; extern_resources[*count].regset = regset; extern_resources[*count].id = var->regs[regset].id + regset_offset;
1
0
0
0
Zebediah Figura : vkd3d-shader/tpf: Write the component count as the column count for structs.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: 7b8789528900c172251960f3795087bbd6d90916 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/7b8789528900c172251960f379508…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Jan 13 18:52:29 2024 -0600 vkd3d-shader/tpf: Write the component count as the column count for structs. --- libs/vkd3d-shader/tpf.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index ed67c9a3..038a97d9 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -3038,8 +3038,8 @@ static void write_sm4_type(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b const struct hlsl_type *array_type = hlsl_get_multiarray_element_type(type); const char *name = array_type->name ? array_type->name : "<unnamed>"; const struct hlsl_profile_info *profile = ctx->profile; - unsigned int field_count = 0, array_size = 0; - size_t fields_offset = 0, name_offset = 0; + unsigned int array_size = 0; + size_t name_offset = 0; size_t i; if (type->bytecode_offset) @@ -3053,6 +3053,8 @@ static void write_sm4_type(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b if (array_type->class == HLSL_CLASS_STRUCT) { + unsigned int field_count = 0; + size_t fields_offset = 0; for (i = 0; i < array_type->e.record.field_count; ++i) { @@ -3079,18 +3081,20 @@ static void write_sm4_type(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b put_u32(buffer, field->type->bytecode_offset); put_u32(buffer, field->reg_offset[HLSL_REGSET_NUMERIC]); } - type->bytecode_offset = put_u32(buffer, vkd3d_make_u32(D3D_SVC_STRUCT, D3D_SVT_VOID)); + put_u32(buffer, vkd3d_make_u32(1, hlsl_type_component_count(array_type))); + put_u32(buffer, vkd3d_make_u32(array_size, field_count)); + put_u32(buffer, fields_offset); } else { + assert(array_type->class <= HLSL_CLASS_LAST_NUMERIC); type->bytecode_offset = put_u32(buffer, vkd3d_make_u32(sm4_class(array_type), sm4_base_type(array_type))); + put_u32(buffer, vkd3d_make_u32(array_type->dimy, array_type->dimx)); + put_u32(buffer, vkd3d_make_u32(array_size, 0)); + put_u32(buffer, 1); } - put_u32(buffer, vkd3d_make_u32(type->dimy, type->dimx)); - put_u32(buffer, vkd3d_make_u32(array_size, field_count)); - put_u32(buffer, fields_offset); - if (profile->major_version >= 5) { put_u32(buffer, 0); /* FIXME: unknown */
1
0
0
0
Zebediah Figura : vkd3d-shader/tpf: Explicitly write the class and base type for non-numeric types.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: 5bf23cb2f5d196e507d85fad90add3a5f1a47083 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/5bf23cb2f5d196e507d85fad90add…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Mon Feb 5 19:51:53 2024 -0600 vkd3d-shader/tpf: Explicitly write the class and base type for non-numeric types. Avoid relying on that information being stored in the hlsl_type. --- libs/vkd3d-shader/tpf.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index 5bbfa4d1..ed67c9a3 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -2994,8 +2994,6 @@ static D3D_SHADER_VARIABLE_CLASS sm4_class(const struct hlsl_type *type) { switch (type->class) { - case HLSL_CLASS_ARRAY: - return sm4_class(type->e.array.type); case HLSL_CLASS_MATRIX: assert(type->modifiers & HLSL_MODIFIERS_MAJORITY_MASK); if (type->modifiers & HLSL_MODIFIER_COLUMN_MAJOR) @@ -3004,10 +3002,11 @@ static D3D_SHADER_VARIABLE_CLASS sm4_class(const struct hlsl_type *type) return D3D_SVC_MATRIX_ROWS; case HLSL_CLASS_SCALAR: return D3D_SVC_SCALAR; - case HLSL_CLASS_STRUCT: - return D3D_SVC_STRUCT; case HLSL_CLASS_VECTOR: return D3D_SVC_VECTOR; + + case HLSL_CLASS_ARRAY: + case HLSL_CLASS_STRUCT: case HLSL_CLASS_OBJECT: break; } @@ -3029,8 +3028,6 @@ static D3D_SHADER_VARIABLE_TYPE sm4_base_type(const struct hlsl_type *type) return D3D_SVT_INT; case HLSL_TYPE_UINT: return D3D_SVT_UINT; - case HLSL_TYPE_VOID: - return D3D_SVT_VOID; default: vkd3d_unreachable(); } @@ -3082,9 +3079,14 @@ static void write_sm4_type(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *b put_u32(buffer, field->type->bytecode_offset); put_u32(buffer, field->reg_offset[HLSL_REGSET_NUMERIC]); } + + type->bytecode_offset = put_u32(buffer, vkd3d_make_u32(D3D_SVC_STRUCT, D3D_SVT_VOID)); + } + else + { + type->bytecode_offset = put_u32(buffer, vkd3d_make_u32(sm4_class(array_type), sm4_base_type(array_type))); } - type->bytecode_offset = put_u32(buffer, vkd3d_make_u32(sm4_class(type), sm4_base_type(type))); put_u32(buffer, vkd3d_make_u32(type->dimy, type->dimx)); put_u32(buffer, vkd3d_make_u32(array_size, field_count)); put_u32(buffer, fields_offset);
1
0
0
0
Zebediah Figura : vkd3d-shader/tpf: Do not write structs with no numeric fields into the RDEF.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: 34e9c101e8e4bf5b7c451696069824ca28706128 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/34e9c101e8e4bf5b7c45169606982…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Jan 13 18:51:26 2024 -0600 vkd3d-shader/tpf: Do not write structs with no numeric fields into the RDEF. --- libs/vkd3d-shader/tpf.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index 7700a2d9..5bbfa4d1 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -3474,8 +3474,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc) LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry) { - if (var->is_uniform && var->buffer == cbuffer - && var->data_type->class != HLSL_CLASS_OBJECT) + if (var->is_uniform && var->buffer == cbuffer && var->data_type->reg_size[HLSL_REGSET_NUMERIC]) ++var_count; } @@ -3509,8 +3508,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc) LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry) { - if (var->is_uniform && var->buffer == cbuffer - && var->data_type->class != HLSL_CLASS_OBJECT) + if (var->is_uniform && var->buffer == cbuffer && var->data_type->reg_size[HLSL_REGSET_NUMERIC]) { uint32_t flags = 0; @@ -3537,8 +3535,7 @@ static void write_sm4_rdef(struct hlsl_ctx *ctx, struct dxbc_writer *dxbc) j = 0; LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry) { - if (var->is_uniform && var->buffer == cbuffer - && var->data_type->class != HLSL_CLASS_OBJECT) + if (var->is_uniform && var->buffer == cbuffer && var->data_type->reg_size[HLSL_REGSET_NUMERIC]) { const unsigned int var_size = (profile->major_version >= 5 ? 10 : 6); size_t var_offset = vars_start + j * var_size * sizeof(uint32_t);
1
0
0
0
Zebediah Figura : vkd3d-shader/hlsl: Allocate register reservations for structs as well.
by Alexandre Julliard
27 Mar '24
27 Mar '24
Module: vkd3d Branch: master Commit: 0b1f11dd331ce49012ffdaf6ddc6d8b8312c83a7 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/0b1f11dd331ce49012ffdaf6ddc6d…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Jan 13 18:47:31 2024 -0600 vkd3d-shader/hlsl: Allocate register reservations for structs as well. --- libs/vkd3d-shader/hlsl_codegen.c | 3 --- tests/hlsl/register-reservations-resources.shader_test | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index ff349ab4..d03be6b1 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -3761,9 +3761,6 @@ static void allocate_register_reservations(struct hlsl_ctx *ctx) { unsigned int r; - if (!hlsl_type_is_resource(var->data_type)) - continue; - if (var->reg_reservation.reg_type) { for (r = 0; r <= HLSL_REGSET_LAST_OBJECT; ++r) diff --git a/tests/hlsl/register-reservations-resources.shader_test b/tests/hlsl/register-reservations-resources.shader_test index d6b577bd..a618c979 100644 --- a/tests/hlsl/register-reservations-resources.shader_test +++ b/tests/hlsl/register-reservations-resources.shader_test @@ -198,7 +198,7 @@ filter linear linear linear address clamp clamp clamp % If a struct spans many object register sets and one is reserved, all other used object register sets must be. -[pixel shader fail(sm<6) todo] +[pixel shader fail(sm<6)] struct { Texture2D tex; @@ -242,4 +242,4 @@ float4 main() : sv_target [test] todo(glsl) draw quad -todo(sm<6) probe all rgba (1.0, 1.0, 1.0, 99.0) +probe all rgba (1.0, 1.0, 1.0, 99.0)
1
0
0
0
← Newer
1
...
5
6
7
8
9
10
11
...
78
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
Results per page:
10
25
50
100
200