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
January 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
711 discussions
Start a n
N
ew thread
Rémi Bernon : dinput/tests: Enforce ordering of concurrent read IRPs.
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: wine Branch: master Commit: 3e79b8d6ebdb3372749aed67e5ee19eb5fd40586 URL:
https://gitlab.winehq.org/wine/wine/-/commit/3e79b8d6ebdb3372749aed67e5ee19…
Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Sat Jan 20 22:01:11 2024 +0100 dinput/tests: Enforce ordering of concurrent read IRPs. --- dlls/dinput/tests/driver_bus.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/dlls/dinput/tests/driver_bus.c b/dlls/dinput/tests/driver_bus.c index c0d181c58a5..e0943c35294 100644 --- a/dlls/dinput/tests/driver_bus.c +++ b/dlls/dinput/tests/driver_bus.c @@ -348,13 +348,13 @@ static void irp_queue_push( struct irp_queue *queue, IRP *irp ) KeReleaseSpinLock( &queue->lock, irql ); } -static void irp_queue_clear( struct irp_queue *queue ) +static void irp_queue_complete( struct irp_queue *queue, BOOL delete ) { IRP *irp; while ((irp = irp_queue_pop( queue ))) { - irp->IoStatus.Status = STATUS_DELETE_PENDING; + if (delete) irp->IoStatus.Status = STATUS_DELETE_PENDING; IoCompleteRequest( irp, IO_NO_INCREMENT ); } } @@ -373,6 +373,7 @@ struct input_queue struct hid_expect *end; struct hid_expect *buffer; struct irp_queue pending; + struct irp_queue completed; }; static void input_queue_init( struct input_queue *queue, BOOL is_polled ) @@ -384,6 +385,7 @@ static void input_queue_init( struct input_queue *queue, BOOL is_polled ) queue->pos = queue->buffer; queue->end = queue->buffer; irp_queue_init( &queue->pending ); + irp_queue_init( &queue->completed ); } static void input_queue_cleanup( struct input_queue *queue ) @@ -416,7 +418,11 @@ static NTSTATUS input_queue_read( struct input_queue *queue, IRP *irp ) KIRQL irql; KeAcquireSpinLock( &queue->lock, &irql ); - if (input_queue_read_locked( queue, irp )) status = STATUS_SUCCESS; + if (input_queue_read_locked( queue, irp )) + { + irp_queue_push( &queue->completed, irp ); + status = STATUS_SUCCESS; + } else { IoMarkIrpPending( irp ); @@ -430,13 +436,10 @@ static NTSTATUS input_queue_read( struct input_queue *queue, IRP *irp ) static void input_queue_reset( struct input_queue *queue, void *in_buf, ULONG in_size ) { - struct irp_queue completed; ULONG remaining; KIRQL irql; IRP *irp; - irp_queue_init( &completed ); - KeAcquireSpinLock( &queue->lock, &irql ); remaining = queue->end - queue->pos; queue->pos = queue->buffer; @@ -447,13 +450,13 @@ static void input_queue_reset( struct input_queue *queue, void *in_buf, ULONG in while (!queue->is_polled && queue->pos < queue->end && (irp = irp_queue_pop( &queue->pending ))) { input_queue_read_locked( queue, irp ); - irp_queue_push( &completed, irp ); + irp_queue_push( &queue->completed, irp ); } KeReleaseSpinLock( &queue->lock, irql ); if (!queue->is_polled) ok( !remaining, "unread input\n" ); - while ((irp = irp_queue_pop( &completed ))) IoCompleteRequest( irp, IO_NO_INCREMENT ); + irp_queue_complete( &queue->completed, FALSE ); } struct device @@ -721,7 +724,8 @@ static NTSTATUS pdo_pnp( DEVICE_OBJECT *device, IRP *irp ) state = (code == IRP_MN_START_DEVICE || code == IRP_MN_CANCEL_REMOVE_DEVICE) ? 0 : PNP_DEVICE_REMOVED; KeAcquireSpinLock( &impl->base.lock, &irql ); impl->base.state = state; - irp_queue_clear( &impl->input_queue.pending ); + irp_queue_complete( &impl->input_queue.pending, TRUE ); + irp_queue_complete( &impl->input_queue.completed, TRUE ); KeReleaseSpinLock( &impl->base.lock, irql ); if (code != IRP_MN_REMOVE_DEVICE) status = STATUS_SUCCESS; else @@ -1087,7 +1091,10 @@ static NTSTATUS pdo_internal_ioctl( DEVICE_OBJECT *device, IRP *irp ) ok( !in_size, "got input size %lu\n", in_size ); ok( out_size == expected_size, "got output size %lu\n", out_size ); status = input_queue_read( &impl->input_queue, irp ); - break; + irp_queue_complete( &impl->input_queue.completed, FALSE ); + + winetest_pop_context(); + return status; } case IOCTL_HID_WRITE_REPORT: @@ -1277,7 +1284,8 @@ static NTSTATUS pdo_handle_ioctl( struct phys_device *impl, IRP *irp, ULONG code case IOCTL_WINETEST_REMOVE_DEVICE: KeAcquireSpinLock( &impl->base.lock, &irql ); impl->base.state = PNP_DEVICE_REMOVED; - irp_queue_clear( &impl->input_queue.pending ); + irp_queue_complete( &impl->input_queue.pending, TRUE ); + irp_queue_complete( &impl->input_queue.completed, TRUE ); KeReleaseSpinLock( &impl->base.lock, irql ); impl->pending_remove = irp; IoMarkIrpPending( irp );
1
0
0
0
Rémi Bernon : dinput/tests: Introduce a new helper to create a foreground window.
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: wine Branch: master Commit: e2dffb8eb0b68cbd2115d67f970fe38f6fb698eb URL:
https://gitlab.winehq.org/wine/wine/-/commit/e2dffb8eb0b68cbd2115d67f970fe3…
Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Sat Jan 20 19:05:18 2024 +0100 dinput/tests: Introduce a new helper to create a foreground window. --- dlls/dinput/tests/device8.c | 65 +++++++++++++++++++++++++------------- dlls/dinput/tests/dinput_test.h | 3 ++ dlls/dinput/tests/force_feedback.c | 6 ++-- dlls/dinput/tests/joystick8.c | 18 ++--------- 4 files changed, 51 insertions(+), 41 deletions(-)
1
0
0
0
Hans Leidekker : dssenh: Finalize the hash if necessary in CPVerifySignature().
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: wine Branch: master Commit: 1d0551ca49fdff68364f7cac42415cea0f586b16 URL:
https://gitlab.winehq.org/wine/wine/-/commit/1d0551ca49fdff68364f7cac42415c…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Tue Dec 12 13:14:08 2023 +0100 dssenh: Finalize the hash if necessary in CPVerifySignature(). --- dlls/dssenh/main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dlls/dssenh/main.c b/dlls/dssenh/main.c index 6772d062fc5..365b365f53f 100644 --- a/dlls/dssenh/main.c +++ b/dlls/dssenh/main.c @@ -1012,5 +1012,11 @@ BOOL WINAPI CPVerifySignature( HCRYPTPROV hprov, HCRYPTHASH hhash, const BYTE *s return FALSE; } + if (!hash->finished) + { + if (BCryptFinishHash( hash->handle, hash->value, hash->len, 0 )) return FALSE; + hash->finished = TRUE; + } + return !BCryptVerifySignature( key->handle, NULL, hash->value, hash->len, (UCHAR *)sig, siglen, 0 ); }
1
0
0
0
Hans Leidekker : bcrypt: Fix private data size in wow64 thunks.
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: wine Branch: master Commit: 7231d4586d3ceccdf46f13bdd696d2b3ce0dc675 URL:
https://gitlab.winehq.org/wine/wine/-/commit/7231d4586d3ceccdf46f13bdd696d2…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Mon Jan 22 13:49:37 2024 +0100 bcrypt: Fix private data size in wow64 thunks. --- dlls/bcrypt/bcrypt_internal.h | 3 ++- dlls/bcrypt/gnutls.c | 14 +++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h index f6556eb2aaa..f0157e86a73 100644 --- a/dlls/bcrypt/bcrypt_internal.h +++ b/dlls/bcrypt/bcrypt_internal.h @@ -184,11 +184,12 @@ struct key_asymmetric DSSSEED dss_seed; }; +#define PRIVATE_DATA_SIZE 3 struct key { struct object hdr; enum alg_id alg_id; - UINT64 private[3]; /* private data for backend */ + UINT64 private[PRIVATE_DATA_SIZE]; /* private data for backend */ union { struct key_symmetric s; diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c index 512731dfcd3..ec1f0fb09ce 100644 --- a/dlls/bcrypt/gnutls.c +++ b/dlls/bcrypt/gnutls.c @@ -2741,7 +2741,7 @@ struct key32 { struct object hdr; enum alg_id alg_id; - UINT64 private[2]; /* private data for backend */ + UINT64 private[PRIVATE_DATA_SIZE]; /* private data for backend */ union { struct key_symmetric32 s; @@ -2791,8 +2791,7 @@ static struct key *get_symmetric_key( struct key32 *key32, struct key *key ) { key->hdr = key32->hdr; key->alg_id = key32->alg_id; - key->private[0] = key32->private[0]; - key->private[1] = key32->private[1]; + memcpy( key->private, key32->private, sizeof(key->private) ); key->u.s.mode = key32->u.s.mode; key->u.s.block_size = key32->u.s.block_size; key->u.s.vector = ULongToPtr(key32->u.s.vector); @@ -2806,8 +2805,7 @@ static struct key *get_asymmetric_key( struct key32 *key32, struct key *key ) { key->hdr = key32->hdr; key->alg_id = key32->alg_id; - key->private[0] = key32->private[0]; - key->private[1] = key32->private[1]; + memcpy( key->private, key32->private, sizeof(key->private) ); key->u.a.bitlen = key32->u.a.bitlen; key->u.a.flags = key32->u.a.flags; key->u.a.dss_seed = key32->u.a.dss_seed; @@ -2816,14 +2814,12 @@ static struct key *get_asymmetric_key( struct key32 *key32, struct key *key ) static void put_symmetric_key32( struct key *key, struct key32 *key32 ) { - key32->private[0] = key->private[0]; - key32->private[1] = key->private[1]; + memcpy( key32->private, key->private, sizeof(key32->private) ); } static void put_asymmetric_key32( struct key *key, struct key32 *key32 ) { - key32->private[0] = key->private[0]; - key32->private[1] = key->private[1]; + memcpy( key32->private, key->private, sizeof(key32->private) ); key32->u.a.flags = key->u.a.flags; key32->u.a.dss_seed = key->u.a.dss_seed; }
1
0
0
0
Henri Verbeet : vkd3d-shader/ir: Store block names in struct vsir_program.
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: vkd3d Branch: master Commit: bf628f0c74ae839bb20266cd10e07d1504ebc1bf URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/bf628f0c74ae839bb20266cd10e07…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Jan 18 20:41:27 2024 +0100 vkd3d-shader/ir: Store block names in struct vsir_program. --- libs/vkd3d-shader/dxbc.c | 5 ----- libs/vkd3d-shader/ir.c | 9 +++++++-- libs/vkd3d-shader/spirv.c | 4 ++-- libs/vkd3d-shader/vkd3d_shader_private.h | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index edb65d2e..37ebc73c 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -552,14 +552,9 @@ static int shdr_handler(const struct vkd3d_shader_dxbc_section_desc *section, void free_shader_desc(struct vkd3d_shader_desc *desc) { - size_t i; - shader_signature_cleanup(&desc->input_signature); shader_signature_cleanup(&desc->output_signature); shader_signature_cleanup(&desc->patch_constant_signature); - for (i = 0; i < desc->block_name_count; ++i) - vkd3d_free((void *)desc->block_names[i]); - vkd3d_free(desc->block_names); } int shader_extract_from_dxbc(const struct vkd3d_shader_code *dxbc, diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 537cbe6f..865a292c 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -26,6 +26,11 @@ bool vsir_program_init(struct vsir_program *program, const struct vkd3d_shader_v void vsir_program_cleanup(struct vsir_program *program) { + size_t i; + + for (i = 0; i < program->block_name_count; ++i) + vkd3d_free((void *)program->block_names[i]); + vkd3d_free(program->block_names); shader_instruction_array_destroy(&program->instructions); } @@ -2235,8 +2240,8 @@ static enum vkd3d_result flatten_control_flow_constructs(struct vkd3d_shader_par vkd3d_free(flattener.control_flow_info); /* Simpler to always free these in free_shader_desc(). */ - parser->shader_desc.block_names = flattener.block_names; - parser->shader_desc.block_name_count = flattener.block_name_count; + program->block_names = flattener.block_names; + program->block_name_count = flattener.block_name_count; return result; } diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 668f0c4e..2acf3b27 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -9803,8 +9803,8 @@ static int spirv_compiler_generate_spirv(struct spirv_compiler *compiler, memset(&shader_desc->output_signature, 0, sizeof(shader_desc->output_signature)); memset(&shader_desc->patch_constant_signature, 0, sizeof(shader_desc->patch_constant_signature)); compiler->use_vocp = program->use_vocp; - compiler->block_names = parser->shader_desc.block_names; - compiler->block_name_count = parser->shader_desc.block_name_count; + compiler->block_names = program->block_names; + compiler->block_name_count = program->block_name_count; compiler->input_control_point_count = program->input_control_point_count; compiler->output_control_point_count = program->output_control_point_count; diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index 5bf40359..9a00b7bc 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -1024,9 +1024,6 @@ struct vkd3d_shader_desc { uint32_t used, external; } flat_constant_count[3]; - - const char **block_names; - size_t block_name_count; }; struct vkd3d_shader_register_semantic @@ -1272,6 +1269,9 @@ struct vsir_program unsigned int temp_count; unsigned int ssa_count; bool use_vocp; + + const char **block_names; + size_t block_name_count; }; bool vsir_program_init(struct vsir_program *program, const struct vkd3d_shader_version *version, unsigned int reserve);
1
0
0
0
Henri Verbeet : vkd3d-shader/ir: Store the block count in struct vsir_program.
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: vkd3d Branch: master Commit: f3c7d2d05c963b6a4103f0c4ea085aaad182ea89 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/f3c7d2d05c963b6a4103f0c4ea085…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Jan 18 20:34:52 2024 +0100 vkd3d-shader/ir: Store the block count in struct vsir_program. --- libs/vkd3d-shader/dxil.c | 2 +- libs/vkd3d-shader/ir.c | 16 +++++++++------- libs/vkd3d-shader/spirv.c | 2 +- libs/vkd3d-shader/vkd3d_shader_private.h | 3 +-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 6b38f028..2a0ff61c 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -5527,7 +5527,7 @@ static enum vkd3d_result sm6_function_emit_blocks(const struct sm6_function *fun { unsigned int i; - sm6->p.shader_desc.block_count = function->block_count; + sm6->p.program.block_count = function->block_count; for (i = 0; i < function->block_count; ++i) { diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 719a153f..537cbe6f 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -2213,6 +2213,7 @@ static enum vkd3d_result cf_flattener_iterate_instruction_array(struct cf_flatte static enum vkd3d_result flatten_control_flow_constructs(struct vkd3d_shader_parser *parser) { + struct vsir_program *program = &parser->program; struct cf_flattener flattener = {0}; enum vkd3d_result result; @@ -2222,10 +2223,10 @@ static enum vkd3d_result flatten_control_flow_constructs(struct vkd3d_shader_par if (result >= 0) { vkd3d_free(parser->program.instructions.elements); - parser->program.instructions.elements = flattener.instructions; - parser->program.instructions.capacity = flattener.instruction_capacity; - parser->program.instructions.count = flattener.instruction_count; - parser->shader_desc.block_count = flattener.block_id; + program->instructions.elements = flattener.instructions; + program->instructions.capacity = flattener.instruction_capacity; + program->instructions.count = flattener.instruction_count; + program->block_count = flattener.block_id; } else { @@ -2511,9 +2512,10 @@ static void vsir_validate_register(struct validation_context *ctx, /* Index == 0 is invalid, but it is temporarily allowed * for intermediate stages. Once we support validation * dialects we can selectively check for that. */ - if (reg->idx[0].offset > ctx->parser->shader_desc.block_count) - validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_INDEX, "LABEL register index %u exceeds the maximum count %u.", - reg->idx[0].offset, ctx->parser->shader_desc.block_count); + if (reg->idx[0].offset > ctx->program->block_count) + validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_INDEX, + "LABEL register index %u exceeds the maximum count %u.", + reg->idx[0].offset, ctx->program->block_count); break; case VKD3DSPR_NULL: diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 4441db16..668f0c4e 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -9790,7 +9790,7 @@ static int spirv_compiler_generate_spirv(struct spirv_compiler *compiler, compiler->location.column = 0; compiler->location.line = 1; - if (parser->shader_desc.block_count && !spirv_compiler_init_blocks(compiler, parser->shader_desc.block_count)) + if (program->block_count && !spirv_compiler_init_blocks(compiler, program->block_count)) return VKD3D_ERROR_OUT_OF_MEMORY; instructions = program->instructions; diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index 332b39af..5bf40359 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -1020,8 +1020,6 @@ struct vkd3d_shader_desc struct shader_signature output_signature; struct shader_signature patch_constant_signature; - unsigned int block_count; - struct { uint32_t used, external; @@ -1270,6 +1268,7 @@ struct vsir_program struct vkd3d_shader_instruction_array instructions; unsigned int input_control_point_count, output_control_point_count; + unsigned int block_count; unsigned int temp_count; unsigned int ssa_count; bool use_vocp;
1
0
0
0
Henri Verbeet : vkd3d-shader/ir: Store control point counts in struct vsir_program.
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: vkd3d Branch: master Commit: 98c6e85b339196d6fb4f14319b7fd84a7f771079 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/98c6e85b339196d6fb4f14319b7fd…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Wed Jan 17 21:35:22 2024 +0100 vkd3d-shader/ir: Store control point counts in struct vsir_program. --- libs/vkd3d-shader/spirv.c | 4 ++-- libs/vkd3d-shader/tpf.c | 8 ++++---- libs/vkd3d-shader/vkd3d_shader_private.h | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 9286e87d..4441db16 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -9806,8 +9806,8 @@ static int spirv_compiler_generate_spirv(struct spirv_compiler *compiler, compiler->block_names = parser->shader_desc.block_names; compiler->block_name_count = parser->shader_desc.block_name_count; - compiler->input_control_point_count = shader_desc->input_control_point_count; - compiler->output_control_point_count = shader_desc->output_control_point_count; + compiler->input_control_point_count = program->input_control_point_count; + compiler->output_control_point_count = program->output_control_point_count; if (compiler->shader_type != VKD3D_SHADER_TYPE_HULL) spirv_compiler_emit_shader_signature_outputs(compiler); diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index df10cd25..50146c2c 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -1051,7 +1051,7 @@ static void shader_sm4_read_dcl_input_primitive(struct vkd3d_shader_instruction { ins->declaration.primitive_type.type = VKD3D_PT_PATCH; ins->declaration.primitive_type.patch_vertex_count = primitive_type - VKD3D_SM5_INPUT_PT_PATCH1 + 1; - priv->p.shader_desc.input_control_point_count = ins->declaration.primitive_type.patch_vertex_count; + priv->p.program.input_control_point_count = ins->declaration.primitive_type.patch_vertex_count; } else if (primitive_type >= ARRAY_SIZE(input_primitive_type_table)) { @@ -1060,7 +1060,7 @@ static void shader_sm4_read_dcl_input_primitive(struct vkd3d_shader_instruction else { ins->declaration.primitive_type.type = input_primitive_type_table[primitive_type].vkd3d_type; - priv->p.shader_desc.input_control_point_count = input_primitive_type_table[primitive_type].control_point_count; + priv->p.program.input_control_point_count = input_primitive_type_table[primitive_type].control_point_count; } if (ins->declaration.primitive_type.type == VKD3D_PT_UNDEFINED) @@ -1174,9 +1174,9 @@ static void shader_sm5_read_control_point_count(struct vkd3d_shader_instruction >> VKD3D_SM5_CONTROL_POINT_COUNT_SHIFT; if (opcode == VKD3D_SM5_OP_DCL_INPUT_CONTROL_POINT_COUNT) - priv->p.shader_desc.input_control_point_count = ins->declaration.count; + priv->p.program.input_control_point_count = ins->declaration.count; else - priv->p.shader_desc.output_control_point_count = ins->declaration.count; + priv->p.program.output_control_point_count = ins->declaration.count; } static void shader_sm5_read_dcl_tessellator_domain(struct vkd3d_shader_instruction *ins, uint32_t opcode, diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index 887c47fc..332b39af 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -1020,8 +1020,6 @@ struct vkd3d_shader_desc struct shader_signature output_signature; struct shader_signature patch_constant_signature; - unsigned int input_control_point_count, output_control_point_count; - unsigned int block_count; struct @@ -1271,6 +1269,7 @@ struct vsir_program struct vkd3d_shader_version shader_version; struct vkd3d_shader_instruction_array instructions; + unsigned int input_control_point_count, output_control_point_count; unsigned int temp_count; unsigned int ssa_count; bool use_vocp;
1
0
0
0
Henri Verbeet : vkd3d: Use debugstr_hresult() in vkd3d_init_null_resources().
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: vkd3d Branch: master Commit: e4cc4a336ebe0c84cf411a3e50104dcae6d130df URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/e4cc4a336ebe0c84cf411a3e50104…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Wed Jan 17 17:56:58 2024 +0100 vkd3d: Use debugstr_hresult() in vkd3d_init_null_resources(). --- libs/vkd3d/resource.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index f9e50335..a360b0ef 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -4923,7 +4923,7 @@ HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources, return vkd3d_init_null_resources_data(null_resources, device); fail: - ERR("Failed to initialize NULL resources, hr %#x.\n", hr); + ERR("Failed to initialise NULL resources, hr %s.\n", debugstr_hresult(hr)); vkd3d_destroy_null_resources(null_resources, device); return hr; }
1
0
0
0
Henri Verbeet : vkd3d: Use debugstr_hresult() in vkd3d_join_thread().
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: vkd3d Branch: master Commit: d4b329e628ddeed5501fb2a96d8ec773abb680c0 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/d4b329e628ddeed5501fb2a96d8ec…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Wed Jan 17 18:06:18 2024 +0100 vkd3d: Use debugstr_hresult() in vkd3d_join_thread(). --- libs/vkd3d/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 88cf9aa1..2b855817 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -4582,7 +4582,7 @@ HRESULT vkd3d_join_thread(struct vkd3d_instance *instance, union vkd3d_thread_ha if (instance->join_thread) { if (FAILED(hr = instance->join_thread(thread->handle))) - ERR("Failed to join thread, hr %#x.\n", hr); + ERR("Failed to join thread, hr %s.\n", debugstr_hresult(hr)); } else {
1
0
0
0
Henri Verbeet : vkd3d: Use debugstr_hresult() in d3d12_device_init().
by Alexandre Julliard
23 Jan '24
23 Jan '24
Module: vkd3d Branch: master Commit: e965701776c0ce8cadd46dd97d3430a6cd999410 URL:
https://gitlab.winehq.org/wine/vkd3d/-/commit/e965701776c0ce8cadd46dd97d343…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Wed Jan 17 18:05:31 2024 +0100 vkd3d: Use debugstr_hresult() in d3d12_device_init(). --- libs/vkd3d/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 80fa9d35..88cf9aa1 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -4404,7 +4404,7 @@ static HRESULT d3d12_device_init(struct d3d12_device *device, if (device->use_vk_heaps && FAILED(hr = vkd3d_create_thread(device->vkd3d_instance, device_worker_main, device, &device->worker_thread))) { - WARN("Failed to create worker thread, hr %#x.\n", hr); + WARN("Failed to create worker thread, hr %s.\n", debugstr_hresult(hr)); goto out_cleanup_descriptor_heap_layouts; }
1
0
0
0
← Newer
1
...
24
25
26
27
28
29
30
...
72
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
Results per page:
10
25
50
100
200