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
February 2021
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
915 discussions
Start a n
N
ew thread
Zebediah Figura : winegstreamer: Manually track read offsets in the media source.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: wine Branch: master Commit: 38330678a0e92db67ccf8ba4329e4449c2fa0681 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=38330678a0e92db67ccf8ba4…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Feb 18 17:01:23 2021 -0600 winegstreamer: Manually track read offsets in the media source. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winegstreamer/media_source.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c index a9a85cf4d4b..ffbf8041ed8 100644 --- a/dlls/winegstreamer/media_source.c +++ b/dlls/winegstreamer/media_source.c @@ -111,6 +111,8 @@ struct media_source SOURCE_SHUTDOWN, } state; HANDLE no_more_pads_event; + + uint64_t file_size, next_pull_offset; }; static inline struct media_stream *impl_from_IMFMediaStream(IMFMediaStream *iface) @@ -449,11 +451,12 @@ GstFlowReturn bytestream_wrapper_pull(GstPad *pad, GstObject *parent, guint64 of TRACE("requesting %u bytes at %s from source %p into buffer %p\n", len, wine_dbgstr_longlong(ofs), source, *buf); - if (ofs != GST_BUFFER_OFFSET_NONE) - { - if (FAILED(IMFByteStream_SetCurrentPosition(byte_stream, ofs))) - return GST_FLOW_ERROR; - } + if (ofs == GST_BUFFER_OFFSET_NONE) + ofs = source->next_pull_offset; + source->next_pull_offset = ofs + len; + + if (FAILED(IMFByteStream_SetCurrentPosition(byte_stream, ofs))) + return GST_FLOW_ERROR; if (FAILED(IMFByteStream_IsEndOfStream(byte_stream, &is_eof))) return GST_FLOW_ERROR; @@ -1244,6 +1247,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ struct media_source *object; gint64 total_pres_time = 0; DWORD bytestream_caps; + uint64_t file_size; unsigned int i; HRESULT hr; int ret; @@ -1257,6 +1261,12 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ return MF_E_BYTESTREAM_NOT_SEEKABLE; } + if (FAILED(hr = IMFByteStream_GetLength(bytestream, &file_size))) + { + FIXME("Failed to get byte stream length, hr %#x.\n", hr); + return hr; + } + if (!(object = heap_alloc_zero(sizeof(*object)))) return E_OUTOFMEMORY; @@ -1266,6 +1276,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ object->byte_stream = bytestream; IMFByteStream_AddRef(bytestream); object->no_more_pads_event = CreateEventA(NULL, FALSE, FALSE, NULL); + object->file_size = file_size; if (FAILED(hr = MFCreateEventQueue(&object->event_queue))) goto fail;
1
0
0
0
Henri Verbeet : vkd3d-shader: Recognise the "raw_buffer" and "structured_buffer" shader model 5 resource types.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 804d191aee092165b19acbfa7e750b7fec83083d URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=804d191aee092165b19acbf…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Feb 19 15:57:12 2021 +0100 vkd3d-shader: Recognise the "raw_buffer" and "structured_buffer" shader model 5 resource types. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/dxbc.c | 11 +++++++++++ libs/vkd3d-shader/trace.c | 4 ++++ libs/vkd3d-shader/vkd3d_shader_private.h | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index e88e5a1..bfc3cce 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -442,6 +442,8 @@ enum vkd3d_sm4_resource_type VKD3D_SM4_RESOURCE_TEXTURE_2DARRAY = 0x8, VKD3D_SM4_RESOURCE_TEXTURE_2DMSARRAY = 0x9, VKD3D_SM4_RESOURCE_TEXTURE_CUBEARRAY = 0xa, + VKD3D_SM4_RESOURCE_RAW_BUFFER = 0xb, + VKD3D_SM4_RESOURCE_STRUCTURED_BUFFER = 0xc, }; enum vkd3d_sm4_data_type @@ -535,6 +537,8 @@ static const enum vkd3d_shader_resource_type resource_type_table[] = /* VKD3D_SM4_RESOURCE_TEXTURE_2DARRAY */ VKD3D_SHADER_RESOURCE_TEXTURE_2DARRAY, /* VKD3D_SM4_RESOURCE_TEXTURE_2DMSARRAY */ VKD3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY, /* VKD3D_SM4_RESOURCE_TEXTURE_CUBEARRAY */ VKD3D_SHADER_RESOURCE_TEXTURE_CUBEARRAY, + /* VKD3D_SM4_RESOURCE_RAW_BUFFER */ VKD3D_SHADER_RESOURCE_BUFFER, + /* VKD3D_SM4_RESOURCE_STRUCTURED_BUFFER */ VKD3D_SHADER_RESOURCE_BUFFER, }; static const enum vkd3d_data_type data_type_table[] = @@ -1831,6 +1835,11 @@ static void shader_sm4_read_instruction_modifier(DWORD modifier, struct vkd3d_sh enum vkd3d_sm4_resource_type resource_type = (modifier & VKD3D_SM5_MODIFIER_RESOURCE_TYPE_MASK) >> VKD3D_SM5_MODIFIER_RESOURCE_TYPE_SHIFT; + if (resource_type == VKD3D_SM4_RESOURCE_RAW_BUFFER) + ins->raw = true; + else if (resource_type == VKD3D_SM4_RESOURCE_STRUCTURED_BUFFER) + ins->structured = true; + if (resource_type < ARRAY_SIZE(resource_type_table)) ins->resource_type = resource_type_table[resource_type]; else @@ -1899,6 +1908,8 @@ void shader_sm4_read_instruction(void *data, const DWORD **ptr, struct vkd3d_sha ins->handler_idx = opcode_info->handler_idx; ins->flags = 0; ins->coissue = false; + ins->raw = false; + ins->structured = false; ins->predicate = NULL; ins->dst_count = strlen(opcode_info->dst_info); ins->dst = priv->dst_param; diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c index 52040ae..4e35511 100644 --- a/libs/vkd3d-shader/trace.c +++ b/libs/vkd3d-shader/trace.c @@ -1639,6 +1639,10 @@ static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler, if (ins->resource_type != VKD3D_SHADER_RESOURCE_NONE) { shader_addline(buffer, "_indexable("); + if (ins->raw) + vkd3d_string_buffer_printf(buffer, "raw_"); + if (ins->structured) + vkd3d_string_buffer_printf(buffer, "structured_"); shader_dump_resource_type(compiler, ins->resource_type); if (ins->resource_stride) shader_print_uint_literal(compiler, ", stride=", ins->resource_stride, ""); diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index d49b47d..6101c38 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -789,7 +789,7 @@ struct vkd3d_shader_instruction enum vkd3d_shader_resource_type resource_type; unsigned int resource_stride; enum vkd3d_data_type resource_data_type[VKD3D_VEC4_SIZE]; - bool coissue; + bool coissue, structured, raw; const struct vkd3d_shader_src_param *predicate; union {
1
0
0
0
Henri Verbeet : vkd3d-shader: Parse shader model 5 resource strides.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 3bacb33556052d23ffe77b66e14c268c008eb060 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=3bacb33556052d23ffe77b6…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Feb 19 15:57:11 2021 +0100 vkd3d-shader: Parse shader model 5 resource strides. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/dxbc.c | 7 +++++++ libs/vkd3d-shader/trace.c | 17 ++++++++++------- libs/vkd3d-shader/vkd3d_shader_private.h | 1 + 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index 6d32b1d..e88e5a1 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -29,6 +29,9 @@ #define VKD3D_SM5_MODIFIER_RESOURCE_TYPE_SHIFT 6 #define VKD3D_SM5_MODIFIER_RESOURCE_TYPE_MASK (0xfu << VKD3D_SM5_MODIFIER_RESOURCE_TYPE_SHIFT) +#define VKD3D_SM5_MODIFIER_RESOURCE_STRIDE_SHIFT 11 +#define VKD3D_SM5_MODIFIER_RESOURCE_STRIDE_MASK (0xfffu << VKD3D_SM5_MODIFIER_RESOURCE_STRIDE_SHIFT) + #define VKD3D_SM4_AOFFIMMI_U_SHIFT 9 #define VKD3D_SM4_AOFFIMMI_U_MASK (0xfu << VKD3D_SM4_AOFFIMMI_U_SHIFT) #define VKD3D_SM4_AOFFIMMI_V_SHIFT 13 @@ -1835,6 +1838,9 @@ static void shader_sm4_read_instruction_modifier(DWORD modifier, struct vkd3d_sh FIXME("Unhandled resource type %#x.\n", resource_type); ins->resource_type = VKD3D_SHADER_RESOURCE_NONE; } + + ins->resource_stride + = (modifier & VKD3D_SM5_MODIFIER_RESOURCE_STRIDE_MASK) >> VKD3D_SM5_MODIFIER_RESOURCE_STRIDE_SHIFT; break; } @@ -1899,6 +1905,7 @@ void shader_sm4_read_instruction(void *data, const DWORD **ptr, struct vkd3d_sha ins->src_count = strlen(opcode_info->src_info); ins->src = priv->src_param; ins->resource_type = VKD3D_SHADER_RESOURCE_NONE; + ins->resource_stride = 0; ins->resource_data_type[0] = VKD3D_DATA_FLOAT; ins->resource_data_type[1] = VKD3D_DATA_FLOAT; ins->resource_data_type[2] = VKD3D_DATA_FLOAT; diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c index 6e1b3a0..52040ae 100644 --- a/libs/vkd3d-shader/trace.c +++ b/libs/vkd3d-shader/trace.c @@ -1635,20 +1635,23 @@ static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler, default: shader_dump_instruction_flags(compiler, ins); - if (vkd3d_shader_instruction_has_texel_offset(ins)) - { - shader_print_int_literal(compiler, "(", ins->texel_offset.u, ""); - shader_print_int_literal(compiler, ",", ins->texel_offset.v, ""); - shader_print_int_literal(compiler, ",", ins->texel_offset.w, ")"); - } if (ins->resource_type != VKD3D_SHADER_RESOURCE_NONE) { - shader_addline(buffer, "("); + shader_addline(buffer, "_indexable("); shader_dump_resource_type(compiler, ins->resource_type); + if (ins->resource_stride) + shader_print_uint_literal(compiler, ", stride=", ins->resource_stride, ""); shader_addline(buffer, ")"); } + if (vkd3d_shader_instruction_has_texel_offset(ins)) + { + shader_print_int_literal(compiler, "(", ins->texel_offset.u, ""); + shader_print_int_literal(compiler, ",", ins->texel_offset.v, ""); + shader_print_int_literal(compiler, ",", ins->texel_offset.w, ")"); + } + if (ins->resource_data_type[0] != VKD3D_DATA_FLOAT || ins->resource_data_type[1] != VKD3D_DATA_FLOAT || ins->resource_data_type[2] != VKD3D_DATA_FLOAT diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index e9e10ba..d49b47d 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -787,6 +787,7 @@ struct vkd3d_shader_instruction const struct vkd3d_shader_src_param *src; struct vkd3d_shader_texel_offset texel_offset; enum vkd3d_shader_resource_type resource_type; + unsigned int resource_stride; enum vkd3d_data_type resource_data_type[VKD3D_VEC4_SIZE]; bool coissue; const struct vkd3d_shader_src_param *predicate;
1
0
0
0
Henri Verbeet : vkd3d-shader: Explicitly handle "none" modifiers in shader_sm4_read_param().
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: d40d8c858edb6f978ad0c718055cb11da1093236 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=d40d8c858edb6f978ad0c71…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Feb 19 15:57:10 2021 +0100 vkd3d-shader: Explicitly handle "none" modifiers in shader_sm4_read_param(). These (seemingly) have no effect, it's not entirely clear why they are generated. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/dxbc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index 5b56259..6d32b1d 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -357,6 +357,14 @@ enum vkd3d_sm4_register_type VKD3D_SM5_RT_DEPTHOUT_LESS_EQUAL = 0x27, }; +enum vkd3d_sm4_register_modifier +{ + VKD3D_SM4_REGISTER_MODIFIER_NONE = 0x01, + VKD3D_SM4_REGISTER_MODIFIER_NEGATE = 0x41, + VKD3D_SM4_REGISTER_MODIFIER_ABS = 0x81, + VKD3D_SM4_REGISTER_MODIFIER_ABS_NEGATE = 0xc1, +}; + enum vkd3d_sm4_output_primitive_type { VKD3D_SM4_OUTPUT_PT_POINTLIST = 0x1, @@ -1522,20 +1530,21 @@ static bool shader_sm4_read_param(struct vkd3d_sm4_data *priv, const DWORD **ptr switch (m) { - case 0x41: + case VKD3D_SM4_REGISTER_MODIFIER_NEGATE: *modifier = VKD3DSPSM_NEG; break; - case 0x81: + case VKD3D_SM4_REGISTER_MODIFIER_ABS: *modifier = VKD3DSPSM_ABS; break; - case 0xc1: + case VKD3D_SM4_REGISTER_MODIFIER_ABS_NEGATE: *modifier = VKD3DSPSM_ABSNEG; break; default: FIXME("Skipping modifier 0x%08x.\n", m); + case VKD3D_SM4_REGISTER_MODIFIER_NONE: *modifier = VKD3DSPSM_NONE; break; }
1
0
0
0
Henri Verbeet : vkd3d-shader: Do not print FIXMEs for VKD3DSUF_ORDER_PRESERVING_COUNTER when generating SPIR-V.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 944665ed11650a72e36b40a2da0cd400cf76b375 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=944665ed11650a72e36b40a…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Feb 19 15:57:09 2021 +0100 vkd3d-shader: Do not print FIXMEs for VKD3DSUF_ORDER_PRESERVING_COUNTER when generating SPIR-V. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/spirv.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index b0b2399..1448d3b 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -5644,9 +5644,12 @@ static void vkd3d_dxbc_compiler_emit_dcl_resource(struct vkd3d_dxbc_compiler *co const struct vkd3d_shader_instruction *instruction) { const struct vkd3d_shader_semantic *semantic = &instruction->declaration.semantic; + uint32_t flags = instruction->flags; - if (instruction->flags) - FIXME("Unhandled UAV flags %#x.\n", instruction->flags); + /* We don't distinguish between APPEND and COUNTER UAVs. */ + flags &= ~VKD3DSUF_ORDER_PRESERVING_COUNTER; + if (flags) + FIXME("Unhandled UAV flags %#x.\n", flags); vkd3d_dxbc_compiler_emit_resource_declaration(compiler, &semantic->resource, semantic->resource_type, semantic->resource_data_type[0], 0, false); @@ -5656,9 +5659,12 @@ static void vkd3d_dxbc_compiler_emit_dcl_resource_raw(struct vkd3d_dxbc_compiler const struct vkd3d_shader_instruction *instruction) { const struct vkd3d_shader_raw_resource *resource = &instruction->declaration.raw_resource; + uint32_t flags = instruction->flags; - if (instruction->flags) - FIXME("Unhandled UAV flags %#x.\n", instruction->flags); + /* We don't distinguish between APPEND and COUNTER UAVs. */ + flags &= ~VKD3DSUF_ORDER_PRESERVING_COUNTER; + if (flags) + FIXME("Unhandled UAV flags %#x.\n", flags); vkd3d_dxbc_compiler_emit_resource_declaration(compiler, &resource->resource, VKD3D_SHADER_RESOURCE_BUFFER, VKD3D_DATA_UINT, 0, true); @@ -5669,9 +5675,12 @@ static void vkd3d_dxbc_compiler_emit_dcl_resource_structured(struct vkd3d_dxbc_c { const struct vkd3d_shader_structured_resource *resource = &instruction->declaration.structured_resource; unsigned int stride = resource->byte_stride; + uint32_t flags = instruction->flags; - if (instruction->flags) - FIXME("Unhandled UAV flags %#x.\n", instruction->flags); + /* We don't distinguish between APPEND and COUNTER UAVs. */ + flags &= ~VKD3DSUF_ORDER_PRESERVING_COUNTER; + if (flags) + FIXME("Unhandled UAV flags %#x.\n", flags); vkd3d_dxbc_compiler_emit_resource_declaration(compiler, &resource->resource, VKD3D_SHADER_RESOURCE_BUFFER, VKD3D_DATA_UINT, stride / 4, false);
1
0
0
0
Henri Verbeet : vkd3d-shader: Respect VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT for d3d-asm output.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 7a791f5ef9d3eeedbf55f3b4d597af1e5a181551 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=7a791f5ef9d3eeedbf55f3b…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Feb 19 15:57:08 2021 +0100 vkd3d-shader: Respect VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT for d3d-asm output. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/trace.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c index afc81d3..6e1b3a0 100644 --- a/libs/vkd3d-shader/trace.c +++ b/libs/vkd3d-shader/trace.c @@ -1682,8 +1682,9 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, struct vkd3d_d3d_asm_compiler compiler; enum vkd3d_result result = VKD3D_OK; struct vkd3d_string_buffer *buffer; + unsigned int indent, i; + const char *indent_str; const DWORD *ptr; - unsigned int i; void *code; static const struct vkd3d_d3d_asm_colours no_colours = @@ -1724,6 +1725,10 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, compiler.colours = colours; else compiler.colours = no_colours; + if (formatting & VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT) + indent_str = " "; + else + indent_str = ""; buffer = &compiler.buffer; vkd3d_string_buffer_init(buffer); @@ -1734,6 +1739,7 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, shader_get_type_prefix(shader_version->type), shader_version->major, shader_version->minor, compiler.colours.reset); + indent = 0; while (!shader_sm4_is_end(data, &ptr)) { struct vkd3d_shader_instruction ins; @@ -1747,7 +1753,38 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, continue; } + switch (ins.handler_idx) + { + case VKD3DSIH_ELSE: + case VKD3DSIH_ENDIF: + case VKD3DSIH_ENDLOOP: + case VKD3DSIH_ENDSWITCH: + --indent; + break; + + default: + break; + } + + for (i = 0; i < indent; ++i) + { + vkd3d_string_buffer_printf(buffer, "%s", indent_str); + } + shader_dump_instruction(&compiler, &ins); + + switch (ins.handler_idx) + { + case VKD3DSIH_ELSE: + case VKD3DSIH_IF: + case VKD3DSIH_LOOP: + case VKD3DSIH_SWITCH: + ++indent; + break; + + default: + break; + } } if ((code = vkd3d_malloc(buffer->content_size)))
1
0
0
0
Henri Verbeet : vkd3d-shader: Add some colour to the d3d-asm version token.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: f0dee5a06a6e6bf7a931578d80b6c6ab91c7e521 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=f0dee5a06a6e6bf7a931578…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Feb 19 15:57:07 2021 +0100 vkd3d-shader: Add some colour to the d3d-asm version token. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/trace.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c index 742fbce..afc81d3 100644 --- a/libs/vkd3d-shader/trace.c +++ b/libs/vkd3d-shader/trace.c @@ -308,6 +308,7 @@ struct vkd3d_d3d_asm_colours const char *opcode; const char *reg; const char *swizzle; + const char *version; const char *write_mask; }; @@ -1692,6 +1693,7 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, .opcode = "", .reg = "", .swizzle = "", + .version = "", .write_mask = "", }; static const struct vkd3d_d3d_asm_colours colours = @@ -1701,6 +1703,7 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, .opcode = "\x1b[96;1m", .reg = "\x1b[96m", .swizzle = "\x1b[93m", + .version = "\x1b[36m", .write_mask = "\x1b[93m", }; @@ -1727,8 +1730,9 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data, shader_version = &compiler.shader_version; shader_sm4_read_header(data, &ptr, shader_version); - vkd3d_string_buffer_printf(buffer, "%s%s_%u_%u\n", compiler.colours.reset, - shader_get_type_prefix(shader_version->type), shader_version->major, shader_version->minor); + vkd3d_string_buffer_printf(buffer, "%s%s_%u_%u%s\n", compiler.colours.version, + shader_get_type_prefix(shader_version->type), shader_version->major, + shader_version->minor, compiler.colours.reset); while (!shader_sm4_is_end(data, &ptr)) {
1
0
0
0
Zebediah Figura : vkd3d-shader: Avoid using debug functions for shader error messages.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 7afe9148f05c5f5c331583e8595860c1ff42814f URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=7afe9148f05c5f5c331583e…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Tue Feb 16 23:52:06 2021 -0600 vkd3d-shader: Avoid using debug functions for shader error messages. Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/hlsl.y | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index a3d4b4e..c33d97c 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -1711,17 +1711,15 @@ hlsl_prog: if (decl->body && $2.decl->body) { hlsl_error(ctx, $2.decl->loc, - "redefinition of function %s", debugstr_a($2.name)); + "redefinition of function \"%s\"", $2.name); YYABORT; } else if (!hlsl_type_compare(decl->return_type, $2.decl->return_type)) { hlsl_error(ctx, $2.decl->loc, - "redefining function %s with a different return type", - debugstr_a($2.name)); + "redefining function \"%s\" with a different return type", $2.name); hlsl_note(ctx, decl->loc, VKD3D_SHADER_LOG_ERROR, - "%s previously declared here", - debugstr_a($2.name)); + "\"%s\" previously declared here", $2.name); YYABORT; } } @@ -2570,7 +2568,7 @@ postfix_expr: } if (!$$) { - hlsl_error(ctx, @3, "invalid subscript %s", debugstr_a($3)); + hlsl_error(ctx, @3, "invalid subscript \"%s\"", $3); YYABORT; } } @@ -2580,14 +2578,14 @@ postfix_expr: if (!(swizzle = get_swizzle(ctx, node, $3, &@3))) { - hlsl_error(ctx, @3, "invalid swizzle %s", debugstr_a($3)); + hlsl_error(ctx, @3, "invalid swizzle \"%s\"", $3); YYABORT; } $$ = append_unop($1, &swizzle->node); } else { - hlsl_error(ctx, @3, "invalid subscript %s", debugstr_a($3)); + hlsl_error(ctx, @3, "invalid subscript \"%s\"", $3); YYABORT; } } @@ -3098,7 +3096,7 @@ int hlsl_parser_compile(struct hlsl_ctx *ctx, const char *entrypoint) if (!(entry_func = get_func_entry(ctx, entrypoint))) { - hlsl_message("error: entry point %s is not defined\n", debugstr_a(entrypoint)); + hlsl_message("error: entry point \"%s\" is not defined\n", entrypoint); return VKD3D_ERROR_INVALID_SHADER; }
1
0
0
0
Zebediah Figura : vkd3d-shader: Get rid of hlsl_base_type_to_string().
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 124069907de407e77c283760b4a7950398e542a3 URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=124069907de407e77c28376…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Tue Feb 16 23:52:05 2021 -0600 vkd3d-shader: Get rid of hlsl_base_type_to_string(). Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/hlsl.c | 47 ++++++++++++++--------------------------------- libs/vkd3d-shader/hlsl.h | 1 - libs/vkd3d-shader/hlsl.y | 3 ++- 3 files changed, 16 insertions(+), 35 deletions(-) diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c index 342fe6a..9e1eb7e 100644 --- a/libs/vkd3d-shader/hlsl.c +++ b/libs/vkd3d-shader/hlsl.c @@ -639,55 +639,37 @@ static int compare_function_decl_rb(const void *key, const struct rb_entry *entr return 0; } -const char *hlsl_base_type_to_string(const struct hlsl_type *type) -{ - const char *name = "(unknown)"; - - switch (type->base_type) - { - case HLSL_TYPE_FLOAT: name = "float"; break; - case HLSL_TYPE_HALF: name = "half"; break; - case HLSL_TYPE_DOUBLE: name = "double"; break; - case HLSL_TYPE_INT: name = "int"; break; - case HLSL_TYPE_UINT: name = "uint"; break; - case HLSL_TYPE_BOOL: name = "bool"; break; - case HLSL_TYPE_SAMPLER: - switch (type->sampler_dim) - { - case HLSL_SAMPLER_DIM_GENERIC: name = "sampler"; break; - case HLSL_SAMPLER_DIM_1D: name = "sampler1D"; break; - case HLSL_SAMPLER_DIM_2D: name = "sampler2D"; break; - case HLSL_SAMPLER_DIM_3D: name = "sampler3D"; break; - case HLSL_SAMPLER_DIM_CUBE: name = "samplerCUBE"; break; - } - break; - default: - FIXME("Unhandled case %u.\n", type->base_type); - } - return name; -} - char *hlsl_type_to_string(const struct hlsl_type *type) { const char *name; char *string; + static const char base_types[HLSL_TYPE_LAST_SCALAR + 1][7] = + { + "float", + "half", + "double", + "int", + "uint", + "bool", + }; + if (type->name) return vkd3d_strdup(type->name); switch (type->type) { case HLSL_CLASS_SCALAR: - return vkd3d_strdup(hlsl_base_type_to_string(type)); + return vkd3d_strdup(base_types[type->base_type]); case HLSL_CLASS_VECTOR: - name = hlsl_base_type_to_string(type); + name = base_types[type->base_type]; if ((string = malloc(strlen(name) + 2))) sprintf(string, "%s%u", name, type->dimx); return string; case HLSL_CLASS_MATRIX: - name = hlsl_base_type_to_string(type); + name = base_types[type->base_type]; if ((string = malloc(strlen(name) + 4))) sprintf(string, "%s%ux%u", name, type->dimx, type->dimy); return string; @@ -907,8 +889,7 @@ static void dump_ir_constant(struct vkd3d_string_buffer *buffer, const struct hl break; default: - vkd3d_string_buffer_printf(buffer, "Constants of type %s not supported\n", - hlsl_base_type_to_string(type)); + assert(0); } } if (type->dimx != 1) diff --git a/libs/vkd3d-shader/hlsl.h b/libs/vkd3d-shader/hlsl.h index b2b7daf..56b8e2a 100644 --- a/libs/vkd3d-shader/hlsl.h +++ b/libs/vkd3d-shader/hlsl.h @@ -496,7 +496,6 @@ static inline void hlsl_src_remove(struct hlsl_src *src) const char *debug_hlsl_type(const struct hlsl_type *type) DECLSPEC_HIDDEN; -const char *hlsl_base_type_to_string(const struct hlsl_type *type) DECLSPEC_HIDDEN; char *hlsl_type_to_string(const struct hlsl_type *type) DECLSPEC_HIDDEN; char *hlsl_modifiers_to_string(unsigned int modifiers) DECLSPEC_HIDDEN; const char *hlsl_node_type_to_string(enum hlsl_ir_node_type type) DECLSPEC_HIDDEN; diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index 8b91ff5..a3d4b4e 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -909,13 +909,14 @@ static unsigned int evaluate_array_dimension(struct hlsl_ir_node *node) case HLSL_TYPE_INT: return constant->value.i[0]; case HLSL_TYPE_FLOAT: + case HLSL_TYPE_HALF: return constant->value.f[0]; case HLSL_TYPE_DOUBLE: return constant->value.d[0]; case HLSL_TYPE_BOOL: return constant->value.b[0]; default: - WARN("Invalid type %s.\n", hlsl_base_type_to_string(constant->node.data_type)); + assert(0); return 0; } }
1
0
0
0
Zebediah Figura : vkd3d-shader: Correctly dump array types.
by Alexandre Julliard
19 Feb '21
19 Feb '21
Module: vkd3d Branch: master Commit: 60f7735b202ffc9c5a188db7d53b8c659ad0ea5a URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=60f7735b202ffc9c5a188db…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Tue Feb 16 23:52:04 2021 -0600 vkd3d-shader: Correctly dump array types. Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/hlsl.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c index f181439..342fe6a 100644 --- a/libs/vkd3d-shader/hlsl.c +++ b/libs/vkd3d-shader/hlsl.c @@ -693,10 +693,27 @@ char *hlsl_type_to_string(const struct hlsl_type *type) return string; case HLSL_CLASS_ARRAY: - name = hlsl_base_type_to_string(type->e.array.type); - if ((string = malloc(strlen(name) + 15))) - sprintf(string, "%s[%u]", name, type->e.array.elements_count); + { + const struct hlsl_type *t; + char *inner_string; + size_t len = 1; + + for (t = type; t->type == HLSL_CLASS_ARRAY; t = t->e.array.type) + len += 14; + if (!(inner_string = hlsl_type_to_string(t))) + return NULL; + len += strlen(inner_string); + + if ((string = malloc(len))) + { + strcpy(string, inner_string); + for (t = type; t->type == HLSL_CLASS_ARRAY; t = t->e.array.type) + sprintf(string + strlen(string), "[%u]", t->e.array.elements_count); + } + + vkd3d_free(inner_string); return string; + } case HLSL_CLASS_STRUCT: return vkd3d_strdup("<anonymous struct>");
1
0
0
0
← Newer
1
...
29
30
31
32
33
34
35
...
92
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
Results per page:
10
25
50
100
200