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
June 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
947 discussions
Start a n
N
ew thread
Paul Gofman : ntoskrnl/tests: Add test for WskAccept().
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: 7f34362d85c58652bc7537580172abaf629bbc6f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=7f34362d85c58652bc753758…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Jun 17 20:22:00 2020 +0300 ntoskrnl/tests: Add test for WskAccept(). Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ntoskrnl.exe/tests/Makefile.in | 2 +- dlls/ntoskrnl.exe/tests/driver4.c | 116 ++++++++++++++++++++++++++++++++++-- dlls/ntoskrnl.exe/tests/ntoskrnl.c | 37 +++++++++++- 3 files changed, 148 insertions(+), 7 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=7f34362d85c58652bc75…
1
0
0
0
Paul Gofman : netio.sys: Implement wsk_accept() function.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: 2d7a304c4524095b10458a3e5f8af1273894ebf3 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=2d7a304c4524095b10458a3e…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Jun 17 20:21:59 2020 +0300 netio.sys: Implement wsk_accept() function. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/netio.sys/netio.c | 226 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 220 insertions(+), 6 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=2d7a304c4524095b1045…
1
0
0
0
Paul Gofman : netio.sys: Implement wsk_bind() function.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: 61cdff3c620a013d012f71f59edf11897233cf51 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=61cdff3c620a013d012f71f5…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Jun 17 20:21:58 2020 +0300 netio.sys: Implement wsk_bind() function. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/netio.sys/netio.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/dlls/netio.sys/netio.c b/dlls/netio.sys/netio.c index 408d75856c..36a6a41b99 100644 --- a/dlls/netio.sys/netio.c +++ b/dlls/netio.sys/netio.c @@ -135,10 +135,24 @@ static NTSTATUS WINAPI wsk_close_socket(WSK_SOCKET *socket, IRP *irp) static NTSTATUS WINAPI wsk_bind(WSK_SOCKET *socket, SOCKADDR *local_address, ULONG flags, IRP *irp) { - FIXME("socket %p, local_address %p, flags %#x, irp %p stub.\n", + struct wsk_socket_internal *s = wsk_socket_internal_from_wsk_socket(socket); + NTSTATUS status; + + TRACE("socket %p, local_address %p, flags %#x, irp %p.\n", socket, local_address, flags, irp); - return STATUS_NOT_IMPLEMENTED; + if (!irp) + return STATUS_INVALID_PARAMETER; + + if (bind(s->s, local_address, sizeof(*local_address))) + status = sock_error_to_ntstatus(WSAGetLastError()); + else + status = STATUS_SUCCESS; + + TRACE("status %#x.\n", status); + irp->IoStatus.Information = 0; + dispatch_irp(irp, status); + return STATUS_PENDING; } static NTSTATUS WINAPI wsk_accept(WSK_SOCKET *listen_socket, ULONG flags, void *accept_socket_context,
1
0
0
0
Paul Gofman : netio.sys: Add stub interface for connection sockets.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: c342ef3c544c4c940c5c04c59fd3f2fcad0c09a6 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=c342ef3c544c4c940c5c04c5…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Jun 17 20:21:57 2020 +0300 netio.sys: Add stub interface for connection sockets. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/netio.sys/netio.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/dlls/netio.sys/netio.c b/dlls/netio.sys/netio.c index 2b8848a275..408d75856c 100644 --- a/dlls/netio.sys/netio.c +++ b/dlls/netio.sys/netio.c @@ -181,6 +181,90 @@ static const WSK_PROVIDER_LISTEN_DISPATCH wsk_provider_listen_dispatch = wsk_get_local_address, }; +static NTSTATUS WINAPI wsk_connect(WSK_SOCKET *socket, SOCKADDR *remote_address, ULONG flags, IRP *irp) +{ + FIXME("socket %p, remote_address %p, flags %#x, irp %p stub.\n", socket, remote_address, flags, irp); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_get_remote_address(WSK_SOCKET *socket, SOCKADDR *remote_address, IRP *irp) +{ + FIXME("socket %p, remote_address %p, irp %p stub.\n", socket, remote_address, irp); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_send(WSK_SOCKET *socket, WSK_BUF *buffer, ULONG flags, IRP *irp) +{ + FIXME("socket %p, buffer %p, flags %#x, irp %p stub.\n", socket, buffer, flags, irp); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_receive(WSK_SOCKET *socket, WSK_BUF *buffer, ULONG flags, IRP *irp) +{ + FIXME("socket %p, buffer %p, flags %#x, irp %p stub.\n", socket, buffer, flags, irp); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_disconnect(WSK_SOCKET *socket, WSK_BUF *buffer, ULONG flags, IRP *irp) +{ + FIXME("socket %p, buffer %p, flags %#x, irp %p stub.\n", socket, buffer, flags, irp); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_release(WSK_SOCKET *socket, WSK_DATA_INDICATION *data_indication) +{ + FIXME("socket %p, data_indication %p stub.\n", socket, data_indication); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_connext_ex(WSK_SOCKET *socket, SOCKADDR *remote_address, WSK_BUF *buffer, + ULONG flags, IRP *irp) +{ + FIXME("socket %p, remote_address %p, buffer %p, flags %#x, irp %p stub.\n", + socket, remote_address, buffer, flags, irp); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_send_ex(void) +{ + FIXME("stub (no prototype, will crash).\n"); + + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS WINAPI wsk_receive_ex(void) +{ + FIXME("stub (no prototype, will crash).\n"); + + return STATUS_NOT_IMPLEMENTED; +} + +static const WSK_PROVIDER_CONNECTION_DISPATCH wsk_provider_connection_dispatch = +{ + { + wsk_control_socket, + wsk_close_socket, + }, + wsk_bind, + wsk_connect, + wsk_get_local_address, + wsk_get_remote_address, + wsk_send, + wsk_receive, + wsk_disconnect, + wsk_release, + wsk_connext_ex, + wsk_send_ex, + wsk_receive_ex, +}; + static NTSTATUS WINAPI wsk_socket(WSK_CLIENT *client, ADDRESS_FAMILY address_family, USHORT socket_type, ULONG protocol, ULONG flags, void *socket_context, const void *dispatch, PEPROCESS owning_process, PETHREAD owning_thread, SECURITY_DESCRIPTOR *security_descriptor, IRP *irp) @@ -225,6 +309,10 @@ static NTSTATUS WINAPI wsk_socket(WSK_CLIENT *client, ADDRESS_FAMILY address_fam socket->wsk_socket.Dispatch = &wsk_provider_listen_dispatch; break; + case WSK_FLAG_CONNECTION_SOCKET: + socket->wsk_socket.Dispatch = &wsk_provider_connection_dispatch; + break; + default: FIXME("Flags %#x not implemented.\n", flags); closesocket(s);
1
0
0
0
Paul Gofman : ws2_32: Optimize interface_bind_check() by caching adapter addresses.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: 60c8c78015b12493eb3984feef29103724a758af URL:
https://source.winehq.org/git/wine.git/?a=commit;h=60c8c78015b12493eb3984fe…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Jun 10 21:22:51 2020 +0300 ws2_32: Optimize interface_bind_check() by caching adapter addresses. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=48668
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ws2_32/socket.c | 65 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 199b7187a8..8744602564 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -277,6 +277,17 @@ static CRITICAL_SECTION_DEBUG critsect_debug = }; static CRITICAL_SECTION csWSgetXXXbyYYY = { &critsect_debug, -1, 0, 0, 0, 0 }; +static in_addr_t *if_addr_cache; +static unsigned int if_addr_cache_size; +static CRITICAL_SECTION cs_if_addr_cache; +static CRITICAL_SECTION_DEBUG cs_if_addr_cache_debug = +{ + 0, 0, &cs_if_addr_cache, + { &cs_if_addr_cache_debug.ProcessLocksList, &cs_if_addr_cache_debug.ProcessLocksList }, + 0, 0, { (DWORD_PTR)(__FILE__ ": cs_if_addr_cache") } +}; +static CRITICAL_SECTION cs_if_addr_cache = { &cs_if_addr_cache_debug, -1, 0, 0, 0, 0 }; + union generic_unix_sockaddr { struct sockaddr addr; @@ -3348,6 +3359,33 @@ static BOOL interface_bind( SOCKET s, int fd, struct sockaddr *addr ) FIXME("Broadcast packets on interface-bound sockets are not currently supported on this platform, " "receiving broadcast packets will not work on socket %04lx.\n", s); #endif + if (ret) + { + EnterCriticalSection(&cs_if_addr_cache); + if (if_addr_cache_size <= adapter->Index) + { + unsigned int new_size; + in_addr_t *new; + + new_size = max(if_addr_cache_size * 2, adapter->Index + 1); + if (!(new = heap_realloc(if_addr_cache, sizeof(*if_addr_cache) * new_size))) + { + ERR("No memory.\n"); + ret = FALSE; + LeaveCriticalSection(&cs_if_addr_cache); + break; + } + memset(new + if_addr_cache_size, 0, sizeof(*if_addr_cache) + * (new_size - if_addr_cache_size)); + if_addr_cache = new; + if_addr_cache_size = new_size; + } + if (if_addr_cache[adapter->Index] && if_addr_cache[adapter->Index] != adapter_addr) + WARN("Adapter addr for iface index %u has changed.\n", adapter->Index); + + if_addr_cache[adapter->Index] = adapter_addr; + LeaveCriticalSection(&cs_if_addr_cache); + } break; } } @@ -3752,27 +3790,12 @@ static void interface_bind_check(int fd, struct sockaddr_in *addr) #endif if (!ret) { - PIP_ADAPTER_INFO adapters, adapter; - DWORD adap_size; - - if (GetAdaptersInfo(NULL, &adap_size) != ERROR_BUFFER_OVERFLOW) - return; - adapters = HeapAlloc(GetProcessHeap(), 0, adap_size); - if (adapters && GetAdaptersInfo(adapters, &adap_size) == NO_ERROR) - { - /* Search the IPv4 adapter list for the appropriate bound interface */ - for (adapter = adapters; adapter != NULL; adapter = adapter->Next) - { - in_addr_t adapter_addr; - if (adapter->Index != ifindex) continue; - - adapter_addr = inet_addr(adapter->IpAddressList.IpAddress.String); - addr->sin_addr.s_addr = adapter_addr; - TRACE("reporting interface address from adapter %d\n", ifindex); - break; - } - } - HeapFree(GetProcessHeap(), 0, adapters); + EnterCriticalSection(&cs_if_addr_cache); + if (ifindex < if_addr_cache_size) + addr->sin_addr.s_addr = if_addr_cache[ifindex]; + else + ERR("No cache entry for ifindex %u.\n", ifindex); + LeaveCriticalSection(&cs_if_addr_cache); } #endif }
1
0
0
0
Aaro Altonen : msado15: Implement IConnectionPoint::Advise/Unadvise.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: b852f777d979f83e9f94fba6484762245bfffbc1 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=b852f777d979f83e9f94fba6…
Author: Aaro Altonen <a.altonen(a)hotmail.com> Date: Wed Jun 17 15:36:15 2020 +0300 msado15: Implement IConnectionPoint::Advise/Unadvise. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=49388
Signed-off-by: Aaro Altonen <a.altonen(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msado15/connection.c | 65 +++++++++++++++++++++++++++++++++++++++++--- dlls/msado15/tests/msado15.c | 5 +--- 2 files changed, 62 insertions(+), 8 deletions(-) diff --git a/dlls/msado15/connection.c b/dlls/msado15/connection.c index 35202d14aa..5d8f78f53e 100644 --- a/dlls/msado15/connection.c +++ b/dlls/msado15/connection.c @@ -40,6 +40,8 @@ struct connection_point IConnectionPoint IConnectionPoint_iface; struct connection *conn; const IID *riid; + IUnknown **sinks; + ULONG sinks_size; }; struct connection @@ -84,9 +86,16 @@ static ULONG WINAPI connection_Release( _Connection *iface ) { struct connection *connection = impl_from_Connection( iface ); LONG refs = InterlockedDecrement( &connection->refs ); + ULONG i; if (!refs) { TRACE( "destroying %p\n", connection ); + for (i = 0; i < connection->cp_connev.sinks_size; ++i) + { + if (connection->cp_connev.sinks[i]) + IUnknown_Release( connection->cp_connev.sinks[i] ); + } + heap_free( connection->cp_connev.sinks ); heap_free( connection->datasource ); heap_free( connection ); } @@ -548,15 +557,61 @@ static HRESULT WINAPI connpoint_Advise( IConnectionPoint *iface, IUnknown *unk_s DWORD *cookie ) { struct connection_point *connpoint = impl_from_IConnectionPoint( iface ); - FIXME( "%p, %p, %p\n", connpoint, unk_sink, cookie ); - return E_NOTIMPL; + IUnknown *sink, **tmp; + ULONG new_size; + HRESULT hr; + DWORD i; + + TRACE( "%p, %p, %p\n", iface, unk_sink, cookie ); + + if (!unk_sink || !cookie) return E_FAIL; + + if (FAILED(hr = IUnknown_QueryInterface( unk_sink, &IID_ConnectionEventsVt, (void**)&sink ))) + { + *cookie = 0; + return E_FAIL; + } + + if (connpoint->sinks) + { + for (i = 0; i < connpoint->sinks_size; ++i) + { + if (!connpoint->sinks[i]) + break; + } + + if (i == connpoint->sinks_size) + { + new_size = connpoint->sinks_size * 2; + if (!(tmp = heap_realloc_zero( connpoint->sinks, new_size * sizeof(*connpoint->sinks) ))) + return E_OUTOFMEMORY; + connpoint->sinks = tmp; + connpoint->sinks_size = new_size; + } + } + else + { + if (!(connpoint->sinks = heap_alloc_zero( sizeof(*connpoint->sinks) ))) return E_OUTOFMEMORY; + connpoint->sinks_size = 1; + i = 0; + } + + connpoint->sinks[i] = sink; + *cookie = i + 1; + return S_OK; } static HRESULT WINAPI connpoint_Unadvise( IConnectionPoint *iface, DWORD cookie ) { struct connection_point *connpoint = impl_from_IConnectionPoint( iface ); - FIXME( "%p, %d\n", connpoint, cookie ); - return E_NOTIMPL; + TRACE( "%p, %u\n", connpoint, cookie ); + + if (!cookie || cookie > connpoint->sinks_size || !connpoint->sinks || !connpoint->sinks[cookie - 1]) + return E_FAIL; + + IUnknown_Release( connpoint->sinks[cookie - 1] ); + connpoint->sinks[cookie - 1] = NULL; + return S_OK; } static HRESULT WINAPI connpoint_EnumConnections( IConnectionPoint *iface, @@ -595,6 +650,8 @@ HRESULT Connection_create( void **obj ) connection->cp_connev.conn = connection; connection->cp_connev.riid = &DIID_ConnectionEvents; connection->cp_connev.IConnectionPoint_iface.lpVtbl = &connpoint_vtbl; + connection->cp_connev.sinks = NULL; + connection->cp_connev.sinks_size = 0; *obj = &connection->Connection_iface; TRACE( "returning iface %p\n", *obj ); diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c index e072ed022f..1629fe15be 100644 --- a/dlls/msado15/tests/msado15.c +++ b/dlls/msado15/tests/msado15.c @@ -996,7 +996,6 @@ static void test_ConnectionPoint(void) hr = IConnectionPointContainer_FindConnectionPoint( pointcontainer, &DIID_ConnectionEvents, &point ); ok( hr == S_OK, "got %08x\n", hr ); -todo_wine { /* nothing advised yet */ hr = IConnectionPoint_Unadvise( point, 3 ); ok( hr == E_FAIL, "got %08x\n", hr ); @@ -1010,10 +1009,8 @@ todo_wine { cookie = 0xdeadbeef; hr = IConnectionPoint_Advise( point, NULL, &cookie ); ok( hr == E_FAIL, "got %08x\n", hr ); -} ok( cookie == 0xdeadbeef, "got %08x\n", cookie ); -todo_wine { /* unsupported sink */ cookie = 0xdeadbeef; hr = IConnectionPoint_Advise( point, (void*)&support_err_sink, &cookie ); @@ -1042,7 +1039,7 @@ todo_wine { ok( hr == S_OK, "got %08x\n", hr ); ok( cookie, "got %08x\n", cookie ); ok( conn_event.refs == 1, "got %d\n", conn_event.refs ); -} + refs = IConnectionPoint_Release( point ); ok( refs == 1, "got %u", refs );
1
0
0
0
Aaro Altonen : include: Add ConnectionEventsVt definition.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: a436833c4157fdc2b399f4a87b132753cc08067f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=a436833c4157fdc2b399f4a8…
Author: Aaro Altonen <a.altonen(a)hotmail.com> Date: Wed Jun 17 15:36:13 2020 +0300 include: Add ConnectionEventsVt definition. Signed-off-by: Aaro Altonen <a.altonen(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/msado15_backcompat.idl | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/include/msado15_backcompat.idl b/include/msado15_backcompat.idl index 5ea9f51c1f..e5d0f5ecfe 100644 --- a/include/msado15_backcompat.idl +++ b/include/msado15_backcompat.idl @@ -47,6 +47,7 @@ interface Property; interface Recordset15; interface Recordset20; interface Recordset21; +interface ConnectionEventsVt; dispinterface ConnectionEvents; dispinterface RecordsetEvents; @@ -1581,6 +1582,70 @@ interface _Command : Command25 [out, retval] VARIANT_BOOL *named_parameters); }; +[ + uuid(00000402-0000-0010-8000-00aa006d2ea4), + odl, + hidden +] +interface ConnectionEventsVt : IUnknown +{ + HRESULT InfoMessage( + [in] Error *error, + [in, out] EventStatusEnum *status, + [in] _Connection *connection); + + HRESULT BeginTransComplete( + [in] LONG TransactionLevel, + [in] Error *error, + [in, out] EventStatusEnum *status, + [in] _Connection *connection); + + HRESULT CommitTransComplete( + [in] Error *error, + [in, out] EventStatusEnum *status, + [in] _Connection *connection); + + HRESULT RollbackTransComplete( + [in] Error *error, + [in, out] EventStatusEnum *status, + [in] _Connection *connection); + + HRESULT WillExecute( + [in, out] BSTR *source, + [in, out] CursorTypeEnum *cursor_type, + [in, out] LockTypeEnum *lock_type, + [in, out] LONG *options, + [in, out] EventStatusEnum *status, + [in] _Command *command, + [in] _Recordset *record_set, + [in] _Connection *connection); + + HRESULT ExecuteComplete( + [in] LONG records_affected, + [in] Error *error, + [in, out] EventStatusEnum *status, + [in] _Command *command, + [in] _Recordset *record_set, + [in] _Connection *connection); + + HRESULT WillConnect( + [in, out] BSTR *string, + [in, out] BSTR *userid, + [in, out] BSTR *password, + [in, out] LONG *options, + [in, out] EventStatusEnum *status, + [in] _Connection *connection); + + HRESULT ConnectComplete( + [in] Error *error, + [in, out] EventStatusEnum *status, + [in] _Connection *connection); + + HRESULT Disconnect( + [in, out] EventStatusEnum *status, + [in] _Connection *connection); +}; + [ uuid(00000400-0000-0010-8000-00aa006d2ea4) ]
1
0
0
0
Aaro Altonen : msado15/tests: Add tests for IConnectionPoint::Advise/Unadvise.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: wine Branch: master Commit: a0aa5b0f46a83e6582e574fcec0233fdd182dd87 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=a0aa5b0f46a83e6582e574fc…
Author: Aaro Altonen <a.altonen(a)hotmail.com> Date: Wed Jun 17 15:36:14 2020 +0300 msado15/tests: Add tests for IConnectionPoint::Advise/Unadvise. Signed-off-by: Aaro Altonen <a.altonen(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msado15/tests/msado15.c | 189 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c index 59c00948c8..e072ed022f 100644 --- a/dlls/msado15/tests/msado15.c +++ b/dlls/msado15/tests/msado15.c @@ -837,12 +837,152 @@ static void test_Command(void) _Command_Release( command ); } +struct conn_event { + ConnectionEventsVt conn_event_sink; + LONG refs; +}; + +static HRESULT WINAPI conneventvt_QueryInterface( ConnectionEventsVt *iface, REFIID riid, void **obj ) +{ + struct conn_event *conn_event = CONTAINING_RECORD( iface, struct conn_event, conn_event_sink ); + + if (IsEqualGUID( &IID_ConnectionEventsVt, riid )) + { + InterlockedIncrement( &conn_event->refs ); + *obj = iface; + return S_OK; + } + + ok( 0, "unexpected call\n" ); + return E_NOINTERFACE; +} + +static ULONG WINAPI conneventvt_AddRef( ConnectionEventsVt *iface ) +{ + struct conn_event *conn_event = CONTAINING_RECORD( iface, struct conn_event, conn_event_sink ); + return InterlockedIncrement( &conn_event->refs ); +} + +static ULONG WINAPI conneventvt_Release( ConnectionEventsVt *iface ) +{ + struct conn_event *conn_event = CONTAINING_RECORD( iface, struct conn_event, conn_event_sink ); + return InterlockedDecrement( &conn_event->refs ); +} + +static HRESULT WINAPI conneventvt_InfoMessage( ConnectionEventsVt *iface, Error *error, + EventStatusEnum *status, _Connection *Connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_BeginTransComplete( ConnectionEventsVt *iface, LONG TransactionLevel, + Error *error, EventStatusEnum *status, _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_CommitTransComplete( ConnectionEventsVt *iface, Error *error, + EventStatusEnum *status, _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_RollbackTransComplete( ConnectionEventsVt *iface, Error *error, + EventStatusEnum *status, _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_WillExecute( ConnectionEventsVt *iface, BSTR *source, + CursorTypeEnum *cursor_type, LockTypeEnum *lock_type, LONG *options, EventStatusEnum *status, + _Command *command, _Recordset *record_set, _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_ExecuteComplete( ConnectionEventsVt *iface, LONG records_affected, + Error *error, EventStatusEnum *status, _Command *command, _Recordset *record_set, + _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_WillConnect( ConnectionEventsVt *iface, BSTR *string, BSTR *userid, + BSTR *password, LONG *options, EventStatusEnum *status, _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_ConnectComplete( ConnectionEventsVt *iface, Error *error, + EventStatusEnum *status, _Connection *connection ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI conneventvt_Disconnect( ConnectionEventsVt *iface, EventStatusEnum *status, + _Connection *connection ) +{ + return E_NOTIMPL; +} + +static const ConnectionEventsVtVtbl conneventvt_vtbl = { + conneventvt_QueryInterface, + conneventvt_AddRef, + conneventvt_Release, + conneventvt_InfoMessage, + conneventvt_BeginTransComplete, + conneventvt_CommitTransComplete, + conneventvt_RollbackTransComplete, + conneventvt_WillExecute, + conneventvt_ExecuteComplete, + conneventvt_WillConnect, + conneventvt_ConnectComplete, + conneventvt_Disconnect +}; + +static HRESULT WINAPI supporterror_QueryInterface( ISupportErrorInfo *iface, REFIID riid, void **obj ) +{ + if (IsEqualGUID( &IID_ISupportErrorInfo, riid )) + { + *obj = iface; + return S_OK; + } + + return E_NOINTERFACE; +} + +static ULONG WINAPI supporterror_AddRef( ISupportErrorInfo *iface ) +{ + return 2; +} + +static ULONG WINAPI supporterror_Release( ISupportErrorInfo *iface ) +{ + return 1; +} + +static HRESULT WINAPI supporterror_InterfaceSupportsErrorInfo( ISupportErrorInfo *iface, REFIID riid ) +{ + return E_NOTIMPL; +} + +static const struct ISupportErrorInfoVtbl support_error_vtbl = +{ + supporterror_QueryInterface, + supporterror_AddRef, + supporterror_Release, + supporterror_InterfaceSupportsErrorInfo +}; + static void test_ConnectionPoint(void) { HRESULT hr; ULONG refs; + DWORD cookie; IConnectionPoint *point; IConnectionPointContainer *pointcontainer; + struct conn_event conn_event = { { &conneventvt_vtbl }, 0 }; + ISupportErrorInfo support_err_sink = { &support_error_vtbl }; hr = CoCreateInstance( &CLSID_Connection, NULL, CLSCTX_INPROC_SERVER, &IID_IConnectionPointContainer, (void**)&pointcontainer ); @@ -856,10 +996,59 @@ static void test_ConnectionPoint(void) hr = IConnectionPointContainer_FindConnectionPoint( pointcontainer, &DIID_ConnectionEvents, &point ); ok( hr == S_OK, "got %08x\n", hr ); +todo_wine { + /* nothing advised yet */ + hr = IConnectionPoint_Unadvise( point, 3 ); + ok( hr == E_FAIL, "got %08x\n", hr ); + + hr = IConnectionPoint_Advise( point, NULL, NULL ); + ok( hr == E_FAIL, "got %08x\n", hr ); + + hr = IConnectionPoint_Advise( point, (void*)&conn_event.conn_event_sink, NULL ); + ok( hr == E_FAIL, "got %08x\n", hr ); + + cookie = 0xdeadbeef; + hr = IConnectionPoint_Advise( point, NULL, &cookie ); + ok( hr == E_FAIL, "got %08x\n", hr ); +} + ok( cookie == 0xdeadbeef, "got %08x\n", cookie ); + +todo_wine { + /* unsupported sink */ + cookie = 0xdeadbeef; + hr = IConnectionPoint_Advise( point, (void*)&support_err_sink, &cookie ); + ok( hr == E_FAIL, "got %08x\n", hr ); + ok( !cookie, "got %08x\n", cookie ); + + cookie = 0; + hr = IConnectionPoint_Advise( point, (void*)&conn_event.conn_event_sink, &cookie ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( cookie, "got %08x\n", cookie ); + + /* invalid cookie */ + hr = IConnectionPoint_Unadvise( point, 0 ); + ok( hr == E_FAIL, "got %08x\n", hr ); + + /* wrong cookie */ + hr = IConnectionPoint_Unadvise( point, cookie + 1 ); + ok( hr == E_FAIL, "got %08x\n", hr ); + + hr = IConnectionPoint_Unadvise( point, cookie ); + ok( hr == S_OK, "got %08x\n", hr ); + + /* sinks are released when the connection is destroyed */ + cookie = 0; + hr = IConnectionPoint_Advise( point, (void*)&conn_event.conn_event_sink, &cookie ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( cookie, "got %08x\n", cookie ); + ok( conn_event.refs == 1, "got %d\n", conn_event.refs ); +} refs = IConnectionPoint_Release( point ); ok( refs == 1, "got %u", refs ); IConnectionPointContainer_Release( pointcontainer ); + + ok( !conn_event.refs, "got %d\n", conn_event.refs ); } START_TEST(msado15)
1
0
0
0
Henri Verbeet : vkd3d-shader: Rename the vkd3d_shader_domain_shader_compile_arguments structure.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: vkd3d Branch: master Commit: 8292efdbed8d5e6892ffb0e275ec047f18b330d0 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=8292efdbed8d5e6892ffb0e…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Jun 18 19:10:48 2020 +0430 vkd3d-shader: Rename the vkd3d_shader_domain_shader_compile_arguments structure. To vkd3d_shader_spirv_domain_shader_target_info. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/vkd3d_shader.h | 4 ++-- libs/vkd3d-shader/spirv.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h index 2b07906..1f58ebd 100644 --- a/include/vkd3d_shader.h +++ b/include/vkd3d_shader.h @@ -32,9 +32,9 @@ enum vkd3d_shader_structure_type /* 1.2 */ VKD3D_SHADER_STRUCTURE_TYPE_SHADER_INTERFACE_INFO, VKD3D_SHADER_STRUCTURE_TYPE_SCAN_INFO, + VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_DOMAIN_SHADER_TARGET_INFO, VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO, VKD3D_SHADER_STRUCTURE_TYPE_TRANSFORM_FEEDBACK_INFO, - VKD3D_SHADER_STRUCTURE_TYPE_DOMAIN_SHADER_COMPILE_ARGUMENTS, VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STRUCTURE_TYPE), }; @@ -269,7 +269,7 @@ enum vkd3d_tessellator_partitioning }; /* Extends vkd3d_shader_spirv_target_info. */ -struct vkd3d_shader_domain_shader_compile_arguments +struct vkd3d_shader_spirv_domain_shader_target_info { enum vkd3d_shader_structure_type type; const void *next; diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 31dcc4f..9bcb59d 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -8671,7 +8671,7 @@ int vkd3d_dxbc_compiler_generate_spirv(struct vkd3d_dxbc_compiler *compiler, struct vkd3d_shader_code *spirv) { const struct vkd3d_shader_spirv_target_info *info = compiler->spirv_target_info; - const struct vkd3d_shader_domain_shader_compile_arguments *ds_args; + const struct vkd3d_shader_spirv_domain_shader_target_info *ds_info; struct vkd3d_spirv_builder *builder = &compiler->spirv_builder; const struct vkd3d_shader_phase *phase; @@ -8685,14 +8685,14 @@ int vkd3d_dxbc_compiler_generate_spirv(struct vkd3d_dxbc_compiler *compiler, if (compiler->shader_type == VKD3D_SHADER_TYPE_DOMAIN) { - if (info && (ds_args = vkd3d_find_struct(info->next, DOMAIN_SHADER_COMPILE_ARGUMENTS))) + if (info && (ds_info = vkd3d_find_struct(info->next, SPIRV_DOMAIN_SHADER_TARGET_INFO))) { - vkd3d_dxbc_compiler_emit_tessellator_output_primitive(compiler, ds_args->output_primitive); - vkd3d_dxbc_compiler_emit_tessellator_partitioning(compiler, ds_args->partitioning); + vkd3d_dxbc_compiler_emit_tessellator_output_primitive(compiler, ds_info->output_primitive); + vkd3d_dxbc_compiler_emit_tessellator_partitioning(compiler, ds_info->partitioning); } else if (vkd3d_dxbc_compiler_is_opengl_target(compiler)) { - ERR("vkd3d_shader_domain_shader_compile_arguments are required for " + ERR("vkd3d_shader_spirv_domain_shader_target_info is required for " "OpenGL tessellation evaluation shader.\n"); } }
1
0
0
0
Henri Verbeet : vkd3d-shader: Rename the vkd3d_shader_target enumeration to vkd3d_shader_spirv_environment.
by Alexandre Julliard
18 Jun '20
18 Jun '20
Module: vkd3d Branch: master Commit: 425dab80b8209034e7026443a25b51ab7b20a161 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=425dab80b8209034e702644…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Jun 18 19:10:50 2020 +0430 vkd3d-shader: Rename the vkd3d_shader_target enumeration to vkd3d_shader_spirv_environment. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/vkd3d_shader.h | 12 ++++---- libs/vkd3d-shader/spirv.c | 52 +++++++++++++++++++---------------- libs/vkd3d-shader/vkd3d_shader_main.c | 8 +++--- libs/vkd3d/state.c | 2 +- 4 files changed, 39 insertions(+), 35 deletions(-) diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h index 09b77b2..1fa39b9 100644 --- a/include/vkd3d_shader.h +++ b/include/vkd3d_shader.h @@ -218,13 +218,13 @@ struct vkd3d_shader_transform_feedback_info unsigned int buffer_stride_count; }; -enum vkd3d_shader_target +enum vkd3d_shader_spirv_environment { - VKD3D_SHADER_TARGET_NONE, - VKD3D_SHADER_TARGET_SPIRV_OPENGL_4_5, - VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0, /* default target */ + VKD3D_SHADER_SPIRV_ENVIRONMENT_NONE, + VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5, + VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0, /* default target */ - VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TARGET), + VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SPIRV_ENVIRONMENT), }; enum vkd3d_shader_target_extension @@ -239,7 +239,7 @@ struct vkd3d_shader_spirv_target_info enum vkd3d_shader_structure_type type; const void *next; - enum vkd3d_shader_target target; + enum vkd3d_shader_spirv_environment environment; unsigned int target_extension_count; const enum vkd3d_shader_target_extension *target_extensions; diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 9bcb59d..bcc208a 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -36,21 +36,21 @@ #ifdef HAVE_SPIRV_TOOLS # include "spirv-tools/libspirv.h" -static spv_target_env spv_target_env_from_vkd3d(enum vkd3d_shader_target target) +static spv_target_env spv_target_env_from_vkd3d(enum vkd3d_shader_spirv_environment environment) { - switch (target) + switch (environment) { - case VKD3D_SHADER_TARGET_SPIRV_OPENGL_4_5: + case VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5: return SPV_ENV_OPENGL_4_5; - case VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0: + case VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0: return SPV_ENV_VULKAN_1_0; default: - ERR("Invalid shader target %#x.\n", target); + ERR("Invalid environment %#x.\n", environment); return SPV_ENV_VULKAN_1_0; } } -static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv, enum vkd3d_shader_target target) +static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv, enum vkd3d_shader_spirv_environment environment) { const static uint32_t options = SPV_BINARY_TO_TEXT_OPTION_FRIENDLY_NAMES | SPV_BINARY_TO_TEXT_OPTION_INDENT; @@ -59,7 +59,7 @@ static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv, enum vkd3d_s spv_context context; spv_result_t ret; - context = spvContextCreate(spv_target_env_from_vkd3d(target)); + context = spvContextCreate(spv_target_env_from_vkd3d(environment)); if (!(ret = spvBinaryToText(context, spirv->code, spirv->size / sizeof(uint32_t), options, &text, &diagnostic))) @@ -82,13 +82,14 @@ static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv, enum vkd3d_s spvContextDestroy(context); } -static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv, enum vkd3d_shader_target target) +static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv, + enum vkd3d_shader_spirv_environment environment) { spv_diagnostic diagnostic = NULL; spv_context context; spv_result_t ret; - context = spvContextCreate(spv_target_env_from_vkd3d(target)); + context = spvContextCreate(spv_target_env_from_vkd3d(environment)); if ((ret = spvValidateBinary(context, spirv->code, spirv->size / sizeof(uint32_t), &diagnostic))) @@ -103,8 +104,10 @@ static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv, enum vkd #else -static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv, enum vkd3d_shader_target target) {} -static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv, enum vkd3d_shader_target target) {} +static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv, + enum vkd3d_shader_spirv_environment environment) {} +static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv, + enum vkd3d_shader_spirv_environment environment) {} #endif /* HAVE_SPIRV_TOOLS */ @@ -2180,16 +2183,17 @@ struct vkd3d_dxbc_compiler *vkd3d_dxbc_compiler_create(const struct vkd3d_shader return compiler; } -static enum vkd3d_shader_target vkd3d_dxbc_compiler_get_target(const struct vkd3d_dxbc_compiler *compiler) +static enum vkd3d_shader_spirv_environment vkd3d_dxbc_compiler_get_target_environment( + const struct vkd3d_dxbc_compiler *compiler) { const struct vkd3d_shader_spirv_target_info *info = compiler->spirv_target_info; - return info ? info->target : VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0; + return info ? info->environment : VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0; } static bool vkd3d_dxbc_compiler_is_opengl_target(const struct vkd3d_dxbc_compiler *compiler) { - return vkd3d_dxbc_compiler_get_target(compiler) == VKD3D_SHADER_TARGET_SPIRV_OPENGL_4_5; + return vkd3d_dxbc_compiler_get_target_environment(compiler) == VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5; } static bool vkd3d_dxbc_compiler_is_target_extension_supported(const struct vkd3d_dxbc_compiler *compiler, @@ -3544,12 +3548,12 @@ static const struct { enum vkd3d_shader_input_sysval_semantic sysval; struct vkd3d_spirv_builtin builtin; - enum vkd3d_shader_target target; + enum vkd3d_shader_spirv_environment environment; } vkd3d_system_value_builtins[] = { - {VKD3D_SIV_VERTEX_ID, {VKD3D_TYPE_INT, 1, SpvBuiltInVertexId}, VKD3D_SHADER_TARGET_SPIRV_OPENGL_4_5}, - {VKD3D_SIV_INSTANCE_ID, {VKD3D_TYPE_INT, 1, SpvBuiltInInstanceId}, VKD3D_SHADER_TARGET_SPIRV_OPENGL_4_5}, + {VKD3D_SIV_VERTEX_ID, {VKD3D_TYPE_INT, 1, SpvBuiltInVertexId}, VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5}, + {VKD3D_SIV_INSTANCE_ID, {VKD3D_TYPE_INT, 1, SpvBuiltInInstanceId}, VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5}, {VKD3D_SIV_POSITION, {VKD3D_TYPE_FLOAT, 4, SpvBuiltInPosition}}, {VKD3D_SIV_VERTEX_ID, {VKD3D_TYPE_INT, 1, SpvBuiltInVertexIndex, sv_vertex_id_fixup}}, @@ -3632,7 +3636,7 @@ static void vkd3d_dxbc_compiler_emit_register_execution_mode(struct vkd3d_dxbc_c static const struct vkd3d_spirv_builtin *get_spirv_builtin_for_sysval( const struct vkd3d_dxbc_compiler *compiler, enum vkd3d_shader_input_sysval_semantic sysval) { - enum vkd3d_shader_target target; + enum vkd3d_shader_spirv_environment environment; unsigned int i; if (!sysval) @@ -3642,12 +3646,12 @@ static const struct vkd3d_spirv_builtin *get_spirv_builtin_for_sysval( if (sysval == VKD3D_SIV_POSITION && compiler->shader_type == VKD3D_SHADER_TYPE_PIXEL) return &vkd3d_pixel_shader_position_builtin; - target = vkd3d_dxbc_compiler_get_target(compiler); + environment = vkd3d_dxbc_compiler_get_target_environment(compiler); for (i = 0; i < ARRAY_SIZE(vkd3d_system_value_builtins); ++i) { if (vkd3d_system_value_builtins[i].sysval == sysval - && (!vkd3d_system_value_builtins[i].target - || vkd3d_system_value_builtins[i].target == target)) + && (!vkd3d_system_value_builtins[i].environment + || vkd3d_system_value_builtins[i].environment == environment)) return &vkd3d_system_value_builtins[i].builtin; } @@ -8711,9 +8715,9 @@ int vkd3d_dxbc_compiler_generate_spirv(struct vkd3d_dxbc_compiler *compiler, if (TRACE_ON()) { - enum vkd3d_shader_target target = vkd3d_dxbc_compiler_get_target(compiler); - vkd3d_spirv_dump(spirv, target); - vkd3d_spirv_validate(spirv, target); + enum vkd3d_shader_spirv_environment environment = vkd3d_dxbc_compiler_get_target_environment(compiler); + vkd3d_spirv_dump(spirv, environment); + vkd3d_spirv_validate(spirv, environment); } return VKD3D_OK; diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c index 0badd74..a56682e 100644 --- a/libs/vkd3d-shader/vkd3d_shader_main.c +++ b/libs/vkd3d-shader/vkd3d_shader_main.c @@ -114,13 +114,13 @@ static int vkd3d_shader_validate_spirv_target_info(const struct vkd3d_shader_spi return VKD3D_ERROR_INVALID_ARGUMENT; } - switch (info->target) + switch (info->environment) { - case VKD3D_SHADER_TARGET_SPIRV_OPENGL_4_5: - case VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0: + case VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5: + case VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0: break; default: - WARN("Invalid shader target %#x.\n", info->target); + WARN("Invalid target environment %#x.\n", info->environment); return VKD3D_ERROR_INVALID_ARGUMENT; } diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index 16bce6b..84cdbe8 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -2166,7 +2166,7 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s ps_target_info.type = VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO; ps_target_info.next = NULL; - ps_target_info.target = VKD3D_SHADER_TARGET_SPIRV_VULKAN_1_0; + ps_target_info.environment = VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0; ps_target_info.target_extensions = vk_info->shader_extensions; ps_target_info.target_extension_count = vk_info->shader_extension_count; ps_target_info.parameters = ps_shader_parameters;
1
0
0
0
← Newer
1
...
30
31
32
33
34
35
36
...
95
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Results per page:
10
25
50
100
200