Rebase against d60c450c7be196c2072f74e34f7760d39e3bad32.

This commit is contained in:
Alistair Leslie-Hughes 2021-07-20 11:04:44 +10:00
parent 183fd3e089
commit 5e8fbbf200
12 changed files with 114 additions and 116 deletions

View File

@ -1,4 +1,4 @@
From a0a3c410b4917a8e5dcab1a2060ccae7c3f8c1e8 Mon Sep 17 00:00:00 2001
From 164e5f77ce0f956834cf7bbf8fbc893cd32c52de Mon Sep 17 00:00:00 2001
From: Daniel Wendt <daniel.wendt@linux.com>
Date: Fri, 15 Nov 2013 12:52:37 +0100
Subject: [PATCH] gdi32: fix for rotated Arc, ArcTo, Chord and Pie drawing
@ -11,7 +11,7 @@ Wine-Bug: http://bugs.winehq.org/show_bug.cgi?id=34579
2 files changed, 83 insertions(+)
diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c
index 62906dcfaf0..4792b3018aa 100644
index a875ae113cd..1a37fdb5fca 100644
--- a/dlls/gdi32/dibdrv/graphics.c
+++ b/dlls/gdi32/dibdrv/graphics.c
@@ -312,6 +312,60 @@ static int get_arc_points( int arc_dir, const RECT *rect, POINT start, POINT end
@ -116,12 +116,12 @@ index 62906dcfaf0..4792b3018aa 100644
{
HeapFree( GetProcessHeap(), 0, points );
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index db33f33110f..dd14a665bcc 100644
index 436846c5bd5..030dd4a3768 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -25,4 +25,7 @@
void set_gdi_client_ptr( HGDIOBJ handle, void *ptr ) DECLSPEC_HIDDEN;
void *get_gdi_client_ptr( HGDIOBJ handle, WORD type ) DECLSPEC_HIDDEN;
@@ -46,4 +46,7 @@ extern BOOL METADC_MoveTo( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_Pie( HDC hdc, INT left, INT top, INT right, INT bottom,
INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
+BOOL xform_has_rotate_and_uniform_scale_and_shear( const XFORM *xform ) DECLSPEC_HIDDEN;
+BOOL xform_decompose_rotation_and_translation( XFORM *xform, XFORM *rotation_and_translation ) DECLSPEC_HIDDEN;

View File

@ -1,7 +1,7 @@
From 95db72178f4906d02785c707a46c8298f4c008d0 Mon Sep 17 00:00:00 2001
From 83a951e062135cb433d23b7af56c2541b504c1a5 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Wed, 10 Mar 2021 13:09:51 -0500
Subject: [PATCH 03/39] winegstreamer: Introduce H.264 decoder transform.
Subject: [PATCH] winegstreamer: Introduce H.264 decoder transform.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
@ -345,7 +345,7 @@ index 55a62361966..cdf90d52025 100644
+
#endif /* __GST_PRIVATE_INCLUDED__ */
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
index dfa448afcfe..de679a62023 100644
index dcbd03137ba..4bff7ee9241 100644
--- a/dlls/winegstreamer/mfplat.c
+++ b/dlls/winegstreamer/mfplat.c
@@ -412,6 +412,7 @@ class_objects[] =
@ -371,11 +371,11 @@ index 072ec90eea4..064a6872c79 100644
+]
+coclass CMSH264DecoderMFT { }
diff --git a/include/mfidl.idl b/include/mfidl.idl
index 76e0d0dfeb4..616271861aa 100644
index 5b16c08bb90..f28a0669804 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -1574,3 +1574,4 @@ cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_ACTIVATE, 0xba491365,
cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_FLAGS, 0xba491366, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8);")
@@ -1579,3 +1579,4 @@ cpp_quote("EXTERN_GUID(MF_XVP_CALLER_ALLOCATES_OUTPUT, 0x4a2cabc, 0x0cab, 0x40b1
cpp_quote("EXTERN_GUID(MF_XVP_SAMPLE_LOCK_TIMEOUT, 0xaa4ddb29, 0x5134, 0x4363, 0xac, 0x72, 0x83, 0xec, 0x4b, 0xc1, 0x04, 0x26);")
cpp_quote("EXTERN_GUID(CLSID_VideoProcessorMFT, 0x88753b26, 0x5b24, 0x49bd, 0xb2, 0xe7, 0xc, 0x44, 0x5c, 0x78, 0xc9, 0x82);")
+cpp_quote("EXTERN_GUID(CLSID_CMSH264DecoderMFT, 0x62ce7e72, 0x4c71, 0x4d20, 0xb1, 0x5d, 0x45, 0x28, 0x31, 0xa8, 0x7d, 0x9d);")

View File

@ -249,7 +249,7 @@ index c83afe4e195..e9689c01085 100644
+ case /* eAVEncH264VProfile_High */ 100: profile = "high"; break;
+ case /* eAVEncH264VProfile_444 */ 244: profile = "high-4:4:4"; break;
+ default:
+ ERR("Unrecognized H.264 profile attribute %u\n", format->u.video.compressed.h264.profile);
+ GST_ERROR("Unrecognized H.264 profile attribute %u\n", format->u.video.compressed.h264.profile);
+ /* fallthrough */
+ case 0: profile = NULL;
+ }
@ -273,7 +273,7 @@ index c83afe4e195..e9689c01085 100644
+ case /* eAVEncH264VLevel5_1 */ 51: level = "5.1"; break;
+ case /* eAVEncH264VLevel5_2 */ 52: level = "5.2"; break;
+ default:
+ ERR("Unrecognized H.264 level attribute %u\n", format->u.video.compressed.h264.level);
+ GST_ERROR("Unrecognized H.264 level attribute %u\n", format->u.video.compressed.h264.level);
+ /* fallthrough */
+ case 0: level = NULL;
+ }

View File

@ -1,7 +1,7 @@
From 431374b54bf2c58515c9bd56acf45d15f2fdf42d Mon Sep 17 00:00:00 2001
From 04332336184dfd88cde06e790c35e5fcff71e583 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 19 Mar 2021 16:40:46 -0400
Subject: [PATCH 09/39] winegstreamer: Add push-mode path for wg_parser.
Subject: [PATCH] winegstreamer: Add push-mode path for wg_parser.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
@ -86,7 +86,7 @@ index 215cf4577d4..25694aae84d 100644
extern const struct unix_funcs *unix_funcs;
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
index 9c554c7c415..f658cc0a5fc 100644
index 05544ef7abe..054e87edb7b 100644
--- a/dlls/winegstreamer/media_source.c
+++ b/dlls/winegstreamer/media_source.c
@@ -305,7 +305,7 @@ static void start_pipeline(struct media_source *source, struct source_async_comm
@ -108,7 +108,7 @@ index 9c554c7c415..f658cc0a5fc 100644
TRACE("Media source is shutting down; exiting.\n");
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c
index 4eceeae0757..1c68eba1872 100644
index fc1b72cd958..4b0f2c215d1 100644
--- a/dlls/winegstreamer/quartz_parser.c
+++ b/dlls/winegstreamer/quartz_parser.c
@@ -799,7 +799,7 @@ static DWORD CALLBACK read_thread(void *arg)
@ -130,10 +130,10 @@ index 4eceeae0757..1c68eba1872 100644
/* We do need to drop any buffers that might have been sent with the old
* caps, but this will be handled in parser_init_stream(). */
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
index e9689c01085..9ca5abebfaf 100644
index 8f472e6650d..d01da49dbef 100644
--- a/dlls/winegstreamer/wg_parser.c
+++ b/dlls/winegstreamer/wg_parser.c
@@ -44,7 +44,7 @@ struct wg_parser
@@ -47,7 +47,7 @@ struct wg_parser
BOOL (*init_gst)(struct wg_parser *parser);
struct wg_parser_stream **streams;
@ -142,7 +142,7 @@ index e9689c01085..9ca5abebfaf 100644
GstElement *container, *decodebin;
GstBus *bus;
@@ -58,7 +58,7 @@ struct wg_parser
@@ -61,7 +61,7 @@ struct wg_parser
pthread_mutex_t mutex;
pthread_cond_t init_cond;
@ -151,7 +151,7 @@ index e9689c01085..9ca5abebfaf 100644
pthread_cond_t read_cond, read_done_cond;
struct
@@ -67,10 +67,12 @@ struct wg_parser
@@ -70,10 +70,12 @@ struct wg_parser
uint64_t offset;
uint32_t size;
bool done;
@ -166,7 +166,7 @@ index e9689c01085..9ca5abebfaf 100644
};
struct wg_parser_stream
@@ -78,9 +80,10 @@ struct wg_parser_stream
@@ -81,9 +83,10 @@ struct wg_parser_stream
struct wg_parser *parser;
GstPad *their_src, *post_sink, *post_src, *my_sink;
@ -178,7 +178,7 @@ index e9689c01085..9ca5abebfaf 100644
pthread_cond_t event_cond, event_empty_cond;
struct wg_parser_event event;
@@ -571,6 +574,9 @@ static void CDECL wg_parser_begin_flush(struct wg_parser *parser)
@@ -574,6 +577,9 @@ static void CDECL wg_parser_begin_flush(struct wg_parser *parser)
{
unsigned int i;
@ -188,7 +188,7 @@ index e9689c01085..9ca5abebfaf 100644
pthread_mutex_lock(&parser->mutex);
parser->flushing = true;
pthread_mutex_unlock(&parser->mutex);
@@ -584,6 +590,9 @@ static void CDECL wg_parser_begin_flush(struct wg_parser *parser)
@@ -587,6 +593,9 @@ static void CDECL wg_parser_begin_flush(struct wg_parser *parser)
static void CDECL wg_parser_end_flush(struct wg_parser *parser)
{
@ -198,7 +198,7 @@ index e9689c01085..9ca5abebfaf 100644
pthread_mutex_lock(&parser->mutex);
parser->flushing = false;
pthread_mutex_unlock(&parser->mutex);
@@ -594,7 +603,7 @@ static bool CDECL wg_parser_get_read_request(struct wg_parser *parser,
@@ -597,7 +606,7 @@ static bool CDECL wg_parser_get_read_request(struct wg_parser *parser,
{
pthread_mutex_lock(&parser->mutex);
@ -207,7 +207,7 @@ index e9689c01085..9ca5abebfaf 100644
pthread_cond_wait(&parser->read_cond, &parser->mutex);
if (!parser->sink_connected)
@@ -611,14 +620,25 @@ static bool CDECL wg_parser_get_read_request(struct wg_parser *parser,
@@ -614,14 +623,25 @@ static bool CDECL wg_parser_get_read_request(struct wg_parser *parser,
return true;
}
@ -237,7 +237,7 @@ index e9689c01085..9ca5abebfaf 100644
}
static void CDECL wg_parser_set_unlimited_buffering(struct wg_parser *parser)
@@ -630,11 +650,15 @@ static void CDECL wg_parser_set_unlimited_buffering(struct wg_parser *parser)
@@ -633,11 +653,15 @@ static void CDECL wg_parser_set_unlimited_buffering(struct wg_parser *parser)
static void CDECL wg_parser_stream_get_preferred_format(struct wg_parser_stream *stream, struct wg_format *format)
{
@ -255,7 +255,7 @@ index e9689c01085..9ca5abebfaf 100644
stream->current_format = *format;
stream->enabled = true;
@@ -663,6 +687,18 @@ static void CDECL wg_parser_stream_enable(struct wg_parser_stream *stream, const
@@ -666,6 +690,18 @@ static void CDECL wg_parser_stream_enable(struct wg_parser_stream *stream, const
gst_util_set_object_arg(G_OBJECT(stream->flip), "method", "none");
break;
}
@ -274,7 +274,7 @@ index e9689c01085..9ca5abebfaf 100644
}
gst_pad_push_event(stream->my_sink, gst_event_new_reconfigure());
@@ -691,6 +727,11 @@ static bool CDECL wg_parser_stream_get_event(struct wg_parser_stream *stream, st
@@ -694,6 +730,11 @@ static bool CDECL wg_parser_stream_get_event(struct wg_parser_stream *stream, st
*event = stream->event;
@ -286,7 +286,7 @@ index e9689c01085..9ca5abebfaf 100644
if (stream->event.type != WG_PARSER_EVENT_BUFFER)
{
stream->event.type = WG_PARSER_EVENT_NONE;
@@ -751,6 +792,9 @@ static bool CDECL wg_parser_stream_seek(struct wg_parser_stream *stream, double
@@ -754,6 +795,9 @@ static bool CDECL wg_parser_stream_seek(struct wg_parser_stream *stream, double
GstSeekType start_type = GST_SEEK_TYPE_SET, stop_type = GST_SEEK_TYPE_SET;
GstSeekFlags flags = 0;
@ -296,7 +296,7 @@ index e9689c01085..9ca5abebfaf 100644
if (start_flags & AM_SEEKING_SeekToKeyFrame)
flags |= GST_SEEK_FLAG_KEY_UNIT;
if (start_flags & AM_SEEKING_Segment)
@@ -767,6 +811,43 @@ static bool CDECL wg_parser_stream_seek(struct wg_parser_stream *stream, double
@@ -770,6 +814,43 @@ static bool CDECL wg_parser_stream_seek(struct wg_parser_stream *stream, double
GST_FORMAT_TIME, flags, start_type, start_pos * 100, stop_type, stop_pos * 100));
}
@ -340,7 +340,7 @@ index e9689c01085..9ca5abebfaf 100644
static void CDECL wg_parser_stream_notify_qos(struct wg_parser_stream *stream,
bool underflow, double proportion, int64_t diff, uint64_t timestamp)
{
@@ -1071,14 +1152,27 @@ static gboolean sink_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
@@ -1084,14 +1165,27 @@ static GstElement *create_element(const char *name, const char *plugin_set)
static struct wg_parser_stream *create_stream(struct wg_parser *parser)
{
struct wg_parser_stream *stream, **new_array;
@ -373,7 +373,7 @@ index e9689c01085..9ca5abebfaf 100644
gst_segment_init(&stream->segment, GST_FORMAT_UNDEFINED);
@@ -1118,7 +1212,7 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1131,7 +1225,7 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
if (!strcmp(name, "video/x-raw"))
{
@ -382,9 +382,9 @@ index e9689c01085..9ca5abebfaf 100644
/* DirectShow can express interlaced video, but downstream filters can't
* necessarily consume it. In particular, the video renderer can't. */
@@ -1147,6 +1241,13 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1148,11 +1242,30 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
if (!(flip = create_element("videoflip", "good")))
goto out;
}
+ if (!(videobox = gst_element_factory_make("videobox", NULL)))
+ {
@ -395,10 +395,8 @@ index e9689c01085..9ca5abebfaf 100644
+
/* videoflip does not support 15 and 16-bit RGB so add a second videoconvert
* to do the final conversion. */
if (!(vconv2 = gst_element_factory_make("videoconvert", NULL)))
@@ -1156,6 +1257,18 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
if (!(vconv2 = create_element("videoconvert", "base")))
goto out;
}
+ if (!parser->seekable)
+ {
@ -415,7 +413,7 @@ index e9689c01085..9ca5abebfaf 100644
/* The bin takes ownership of these elements. */
gst_bin_add(GST_BIN(parser->container), deinterlace);
gst_element_sync_state_with_parent(deinterlace);
@@ -1163,16 +1276,20 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1160,16 +1273,20 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
gst_element_sync_state_with_parent(vconv);
gst_bin_add(GST_BIN(parser->container), flip);
gst_element_sync_state_with_parent(flip);
@ -437,7 +435,7 @@ index e9689c01085..9ca5abebfaf 100644
}
else if (!strcmp(name, "audio/x-raw"))
{
@@ -1260,23 +1377,25 @@ static void pad_removed_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1253,23 +1370,25 @@ static void pad_removed_cb(GstElement *element, GstPad *pad, gpointer user)
g_free(name);
}
@ -472,7 +470,7 @@ index e9689c01085..9ca5abebfaf 100644
if (!*buffer)
*buffer = new_buffer = gst_buffer_new_and_alloc(size);
@@ -1285,6 +1404,14 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
@@ -1278,6 +1397,14 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
pthread_mutex_lock(&parser->mutex);
@ -487,7 +485,7 @@ index e9689c01085..9ca5abebfaf 100644
assert(!parser->read_request.data);
parser->read_request.data = map_info.data;
parser->read_request.offset = offset;
@@ -1296,8 +1423,36 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
@@ -1289,8 +1416,36 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
* the upstream pin to flush if necessary. We should never be blocked on
* read_thread() not running. */
@ -525,7 +523,7 @@ index e9689c01085..9ca5abebfaf 100644
ret = parser->read_request.ret;
@@ -1305,12 +1460,29 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
@@ -1298,12 +1453,29 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
gst_buffer_unmap(*buffer, &map_info);
@ -557,7 +555,7 @@ index e9689c01085..9ca5abebfaf 100644
}
static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
@@ -1329,7 +1501,7 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
@@ -1322,7 +1494,7 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
gst_query_set_duration(query, GST_FORMAT_PERCENT, GST_FORMAT_PERCENT_MAX);
return TRUE;
}
@ -566,7 +564,7 @@ index e9689c01085..9ca5abebfaf 100644
{
gst_query_set_duration(query, GST_FORMAT_BYTES, parser->file_size);
return TRUE;
@@ -1343,15 +1515,42 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
@@ -1336,15 +1508,42 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
GST_WARNING("Cannot seek using format \"%s\".", gst_format_get_name(format));
return FALSE;
}
@ -610,7 +608,7 @@ index e9689c01085..9ca5abebfaf 100644
default:
GST_WARNING("Unhandled query type %s.", GST_QUERY_TYPE_NAME(query));
return FALSE;
@@ -1361,42 +1560,115 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
@@ -1354,42 +1553,115 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
static void *push_data(void *arg)
{
struct wg_parser *parser = arg;
@ -736,7 +734,7 @@ index e9689c01085..9ca5abebfaf 100644
buffer->duration = buffer->pts = -1;
if ((ret = gst_pad_push(parser->my_src, buffer)) < 0)
@@ -1406,8 +1678,6 @@ static void *push_data(void *arg)
@@ -1399,8 +1671,6 @@ static void *push_data(void *arg)
}
}
@ -745,7 +743,7 @@ index e9689c01085..9ca5abebfaf 100644
gst_pad_push_event(parser->my_src, gst_event_new_eos());
GST_DEBUG("Stopping push thread.");
@@ -1423,6 +1693,12 @@ static gboolean activate_push(GstPad *pad, gboolean activate)
@@ -1416,6 +1686,12 @@ static gboolean activate_push(GstPad *pad, gboolean activate)
{
if (parser->push_thread)
{
@ -758,7 +756,7 @@ index e9689c01085..9ca5abebfaf 100644
pthread_join(parser->push_thread, NULL);
parser->push_thread = 0;
}
@@ -1608,13 +1884,11 @@ static LONGLONG query_duration(GstPad *pad)
@@ -1601,13 +1877,11 @@ static LONGLONG query_duration(GstPad *pad)
return 0;
}
@ -773,7 +771,7 @@ index e9689c01085..9ca5abebfaf 100644
parser->sink_connected = true;
if (!parser->bus)
@@ -1636,6 +1910,20 @@ static HRESULT CDECL wg_parser_connect(struct wg_parser *parser, uint64_t file_s
@@ -1629,6 +1903,20 @@ static HRESULT CDECL wg_parser_connect(struct wg_parser *parser, uint64_t file_s
parser->start_offset = parser->next_offset = parser->stop_offset = 0;
parser->next_pull_offset = 0;
@ -794,7 +792,7 @@ index e9689c01085..9ca5abebfaf 100644
if (!parser->init_gst(parser))
return E_FAIL;
@@ -1666,6 +1954,43 @@ static HRESULT CDECL wg_parser_connect(struct wg_parser *parser, uint64_t file_s
@@ -1659,6 +1947,43 @@ static HRESULT CDECL wg_parser_connect(struct wg_parser *parser, uint64_t file_s
return S_OK;
}
@ -838,9 +836,9 @@ index e9689c01085..9ca5abebfaf 100644
static void free_stream(struct wg_parser_stream *stream)
{
if (stream->their_src)
@@ -1740,6 +2065,9 @@ static BOOL decodebin_parser_init_gst(struct wg_parser *parser)
@@ -1729,6 +2054,9 @@ static BOOL decodebin_parser_init_gst(struct wg_parser *parser)
if (!(element = create_element("decodebin", "base")))
return FALSE;
}
+ if (parser->input_format.major_type)
+ g_object_set(G_OBJECT(element), "sink-caps", wg_format_to_caps(&parser->input_format), NULL);
@ -848,7 +846,7 @@ index e9689c01085..9ca5abebfaf 100644
gst_bin_add(GST_BIN(parser->container), element);
parser->decodebin = element;
@@ -2016,6 +2344,7 @@ static const struct unix_funcs funcs =
@@ -1993,6 +2321,7 @@ static const struct unix_funcs funcs =
wg_parser_destroy,
wg_parser_connect,
@ -856,7 +854,7 @@ index e9689c01085..9ca5abebfaf 100644
wg_parser_disconnect,
wg_parser_begin_flush,
@@ -2040,6 +2369,7 @@ static const struct unix_funcs funcs =
@@ -2017,6 +2346,7 @@ static const struct unix_funcs funcs =
wg_parser_stream_get_duration,
wg_parser_stream_seek,

View File

@ -253,7 +253,7 @@ index 6c8cf1f85b1..7f06fd886d6 100644
+ case 0x2A: profile = "lc"; level = "4"; break;
+ case 0x2B: profile = "lc"; level = "5"; break;
+ default:
+ FIXME("Unrecognized profile-level-indication %u\n", format->u.audio.compressed.aac.indication);
+ GST_DEBUG("Unrecognized profile-level-indication %u\n", format->u.audio.compressed.aac.indication);
+ /* fallthrough */
+ case 0x00: case 0xFE: profile = level = NULL; break; /* unspecified */
+ }

View File

@ -431,7 +431,7 @@ index 44d0c9b71f3..6f4dd28082b 100644
+ {
+ if (!(convert = gst_element_factory_make("videoconvert", NULL)))
+ {
+ ERR("Failed to create videoconvert; are %u-bit GStreamer \"base\" plugins installed?\n",
+ GST_ERROR("Failed to create videoconvert; are %u-bit GStreamer \"base\" plugins installed?\n",
+ 8 * (int)sizeof(void*));
+ return FALSE;
+ }
@ -445,7 +445,7 @@ index 44d0c9b71f3..6f4dd28082b 100644
+ {
+ if (!(convert = gst_element_factory_make("audioconvert", NULL)))
+ {
+ ERR("Failed to create audioconvert; are %u-bit GStreamer \"base\" plugins installed?\n",
+ GST_ERROR("Failed to create audioconvert; are %u-bit GStreamer \"base\" plugins installed?\n",
+ 8 * (int)sizeof(void*));
+ return FALSE;
+ }
@ -454,7 +454,7 @@ index 44d0c9b71f3..6f4dd28082b 100644
+
+ if (!(resampler = gst_element_factory_make("audioresample", NULL)))
+ {
+ ERR("Failed to create audioresample; are %u-bit GStreamer \"base\" plugins installed?\n",
+ GST_ERROR("Failed to create audioresample; are %u-bit GStreamer \"base\" plugins installed?\n",
+ 8 * (int)sizeof(void*));
+ return FALSE;
+ }
@ -468,7 +468,7 @@ index 44d0c9b71f3..6f4dd28082b 100644
+
+ if ((ret = gst_pad_link(parser->my_src, parser->their_sink)) < 0)
+ {
+ ERR("Failed to link sink pads, error %d.\n", ret);
+ GST_ERROR("Failed to link sink pads, error %d.\n", ret);
+ return FALSE;
+ }
+
@ -479,7 +479,7 @@ index 44d0c9b71f3..6f4dd28082b 100644
+ gst_object_ref(stream->their_src);
+ if ((ret = gst_pad_link(stream->their_src, stream->my_sink)) < 0)
+ {
+ ERR("Failed to link source pads, error %d.\n", ret);
+ GST_ERROR("Failed to link source pads, error %d.\n", ret);
+ return FALSE;
+ }
+
@ -489,7 +489,7 @@ index 44d0c9b71f3..6f4dd28082b 100644
+ ret = gst_element_get_state(parser->container, NULL, NULL, -1);
+ if (ret == GST_STATE_CHANGE_FAILURE)
+ {
+ ERR("Failed to play stream.\n");
+ GST_ERROR("Failed to play stream.\n");
+ return FALSE;
+ }
+

View File

@ -1,8 +1,8 @@
From 97f4a9b38ee49706edb3c52b93dd86509665361c Mon Sep 17 00:00:00 2001
From 7be3ecb31b7beb25a0a66d11d9f36a5192a9653c Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Thu, 18 Mar 2021 16:20:50 -0400
Subject: [PATCH 34/39] winegstreamer: Only require videobox element for parser
when needed.
Subject: [PATCH] winegstreamer: Only require videobox element for parser when
needed.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
@ -10,10 +10,10 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
1 file changed, 32 insertions(+), 10 deletions(-)
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
index 534db931d8b..afd69ea6891 100644
index 863870f966d..1d659fcc8d0 100644
--- a/dlls/winegstreamer/wg_parser.c
+++ b/dlls/winegstreamer/wg_parser.c
@@ -753,6 +753,15 @@ static void CDECL wg_parser_stream_enable(struct wg_parser_stream *stream, const
@@ -756,6 +756,15 @@ static void CDECL wg_parser_stream_enable(struct wg_parser_stream *stream, const
if (aperture)
{
@ -29,9 +29,9 @@ index 534db931d8b..afd69ea6891 100644
if (aperture->left)
g_object_set(G_OBJECT(stream->box), "left", -aperture->left, NULL);
if (aperture->top)
@@ -1309,12 +1318,7 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1310,12 +1319,7 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
if (!(flip = create_element("videoflip", "good")))
goto out;
}
- if (!(videobox = gst_element_factory_make("videobox", NULL)))
- {
@ -43,7 +43,7 @@ index 534db931d8b..afd69ea6891 100644
/* videoflip does not support 15 and 16-bit RGB so add a second videoconvert
* to do the final conversion. */
@@ -1327,6 +1331,14 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1324,6 +1328,14 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
if (!parser->seekable)
{
@ -58,7 +58,7 @@ index 534db931d8b..afd69ea6891 100644
if (stream->aperture.left)
g_object_set(G_OBJECT(videobox), "left", -stream->aperture.left, NULL);
if (stream->aperture.bottom)
@@ -1344,15 +1356,25 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
@@ -1341,15 +1353,25 @@ static void pad_added_cb(GstElement *element, GstPad *pad, gpointer user)
gst_element_sync_state_with_parent(vconv);
gst_bin_add(GST_BIN(parser->container), flip);
gst_element_sync_state_with_parent(flip);

View File

@ -1,4 +1,4 @@
From cd91540817d4ead5855a3c21c54e6fd9d07af68a Mon Sep 17 00:00:00 2001
From 673e8c2b688451f8bfa7fc1c45ba2f7c8be19614 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sat, 22 May 2021 17:38:50 -0500
Subject: [PATCH] wined3d: Make depth bounds test into a proper state.
@ -12,10 +12,10 @@ Subject: [PATCH] wined3d: Make depth bounds test into a proper state.
5 files changed, 98 insertions(+), 31 deletions(-)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 1deafc2d4c3..2b765df30d8 100644
index 13c0fce5bb1..fb3e7db991f 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -132,6 +132,7 @@ enum wined3d_cs_op
@@ -135,6 +135,7 @@ enum wined3d_cs_op
WINED3D_CS_OP_SET_RENDER_STATE,
WINED3D_CS_OP_SET_TEXTURE_STATE,
WINED3D_CS_OP_SET_SAMPLER_STATE,
@ -23,7 +23,7 @@ index 1deafc2d4c3..2b765df30d8 100644
WINED3D_CS_OP_SET_TRANSFORM,
WINED3D_CS_OP_SET_CLIP_PLANE,
WINED3D_CS_OP_SET_COLOR_KEY,
@@ -388,6 +389,12 @@ struct wined3d_cs_set_sampler_state
@@ -385,6 +386,12 @@ struct wined3d_cs_set_sampler_state
DWORD value;
};
@ -36,7 +36,7 @@ index 1deafc2d4c3..2b765df30d8 100644
struct wined3d_cs_set_transform
{
enum wined3d_cs_op opcode;
@@ -613,6 +620,7 @@ static const char *debug_cs_op(enum wined3d_cs_op op)
@@ -609,6 +616,7 @@ static const char *debug_cs_op(enum wined3d_cs_op op)
WINED3D_TO_STR(WINED3D_CS_OP_SET_RENDER_STATE);
WINED3D_TO_STR(WINED3D_CS_OP_SET_TEXTURE_STATE);
WINED3D_TO_STR(WINED3D_CS_OP_SET_SAMPLER_STATE);
@ -44,7 +44,7 @@ index 1deafc2d4c3..2b765df30d8 100644
WINED3D_TO_STR(WINED3D_CS_OP_SET_TRANSFORM);
WINED3D_TO_STR(WINED3D_CS_OP_SET_CLIP_PLANE);
WINED3D_TO_STR(WINED3D_CS_OP_SET_COLOR_KEY);
@@ -1934,6 +1942,28 @@ void wined3d_device_context_emit_set_sampler_state(struct wined3d_device_context
@@ -1923,6 +1931,28 @@ void wined3d_device_context_emit_set_sampler_state(struct wined3d_device_context
wined3d_device_context_submit(context, WINED3D_CS_QUEUE_DEFAULT);
}
@ -73,7 +73,7 @@ index 1deafc2d4c3..2b765df30d8 100644
static void wined3d_cs_exec_set_transform(struct wined3d_cs *cs, const void *data)
{
const struct wined3d_cs_set_transform *op = data;
@@ -2926,6 +2956,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
@@ -2917,6 +2947,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
/* WINED3D_CS_OP_SET_RENDER_STATE */ wined3d_cs_exec_set_render_state,
/* WINED3D_CS_OP_SET_TEXTURE_STATE */ wined3d_cs_exec_set_texture_state,
/* WINED3D_CS_OP_SET_SAMPLER_STATE */ wined3d_cs_exec_set_sampler_state,
@ -82,10 +82,10 @@ index 1deafc2d4c3..2b765df30d8 100644
/* WINED3D_CS_OP_SET_CLIP_PLANE */ wined3d_cs_exec_set_clip_plane,
/* WINED3D_CS_OP_SET_COLOR_KEY */ wined3d_cs_exec_set_color_key,
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 175a3b7ed0b..0d6cd8871c1 100644
index d2147447ee0..cc100b02bac 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1925,6 +1925,14 @@ void CDECL wined3d_device_context_set_rasterizer_state(struct wined3d_device_con
@@ -1891,6 +1891,14 @@ void CDECL wined3d_device_context_set_rasterizer_state(struct wined3d_device_con
wined3d_rasterizer_state_decref(prev);
}
@ -100,7 +100,7 @@ index 175a3b7ed0b..0d6cd8871c1 100644
void CDECL wined3d_device_context_set_viewports(struct wined3d_device_context *context, unsigned int viewport_count,
const struct wined3d_viewport *viewports)
{
@@ -3568,7 +3576,8 @@ static void wined3d_device_set_texture(struct wined3d_device *device,
@@ -3546,7 +3554,8 @@ static void wined3d_device_set_texture(struct wined3d_device *device,
void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
struct wined3d_stateblock *stateblock)
{
@ -110,7 +110,7 @@ index 175a3b7ed0b..0d6cd8871c1 100644
const struct wined3d_stateblock_state *state = &stateblock->stateblock_state;
const struct wined3d_saved_states *changed = &stateblock->changed;
const unsigned int word_bit_count = sizeof(DWORD) * CHAR_BIT;
@@ -3674,7 +3683,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
@@ -3652,7 +3661,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
case WINED3D_RS_COLORWRITEENABLE1:
case WINED3D_RS_COLORWRITEENABLE2:
case WINED3D_RS_COLORWRITEENABLE3:
@ -119,7 +119,7 @@ index 175a3b7ed0b..0d6cd8871c1 100644
break;
case WINED3D_RS_BACK_STENCILFAIL:
@@ -3693,7 +3702,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
@@ -3671,7 +3680,7 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
case WINED3D_RS_ZENABLE:
case WINED3D_RS_ZFUNC:
case WINED3D_RS_ZWRITEENABLE:
@ -128,7 +128,7 @@ index 175a3b7ed0b..0d6cd8871c1 100644
break;
case WINED3D_RS_FILLMODE:
@@ -3702,9 +3711,15 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
@@ -3680,9 +3689,15 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
case WINED3D_RS_DEPTHBIAS:
case WINED3D_RS_SCISSORTESTENABLE:
case WINED3D_RS_ANTIALIASEDLINEENABLE:
@ -145,7 +145,7 @@ index 175a3b7ed0b..0d6cd8871c1 100644
default:
wined3d_device_set_render_state(device, idx, state->rs[idx]);
break;
@@ -3893,6 +3908,20 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
@@ -3871,6 +3886,20 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
}
}
@ -167,7 +167,7 @@ index 175a3b7ed0b..0d6cd8871c1 100644
{
map = changed->textureState[i];
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index a9183278d86..73a40628f21 100644
index 8316269afcf..6cd4ff30458 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -2040,42 +2040,31 @@ static void state_tessellation(struct wined3d_context *context, const struct win
@ -227,7 +227,7 @@ index a9183278d86..73a40628f21 100644
}
static void state_wrapu(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
@@ -4682,6 +4671,8 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
@@ -4685,6 +4674,8 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
{ STATE_DEPTH_STENCIL, { STATE_DEPTH_STENCIL, depth_stencil_2s }, EXT_STENCIL_TWO_SIDE },
{ STATE_DEPTH_STENCIL, { STATE_DEPTH_STENCIL, depth_stencil }, WINED3D_GL_EXT_NONE },
{ STATE_STENCIL_REF, { STATE_DEPTH_STENCIL, NULL }, WINED3D_GL_EXT_NONE },
@ -236,7 +236,7 @@ index a9183278d86..73a40628f21 100644
{ STATE_STREAMSRC, { STATE_STREAMSRC, streamsrc }, WINED3D_GL_EXT_NONE },
{ STATE_VDECL, { STATE_VDECL, vdecl_miscpart }, WINED3D_GL_EXT_NONE },
{ STATE_RASTERIZER, { STATE_RASTERIZER, rasterizer_cc }, ARB_CLIP_CONTROL },
@@ -4795,7 +4786,6 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
@@ -4798,7 +4789,6 @@ const struct wined3d_state_entry_template misc_state_template_gl[] =
{ STATE_RENDER(WINED3D_RS_ADAPTIVETESS_Y), { STATE_RENDER(WINED3D_RS_ENABLEADAPTIVETESSELLATION),NULL }, WINED3D_GL_EXT_NONE },
{ STATE_RENDER(WINED3D_RS_ADAPTIVETESS_Z), { STATE_RENDER(WINED3D_RS_ENABLEADAPTIVETESSELLATION),NULL }, WINED3D_GL_EXT_NONE },
{ STATE_RENDER(WINED3D_RS_ADAPTIVETESS_W), { STATE_RENDER(WINED3D_RS_ENABLEADAPTIVETESSELLATION),NULL }, WINED3D_GL_EXT_NONE },
@ -258,7 +258,7 @@ index 4019dd4d812..9b58c217a0c 100644
return wine_dbg_sprintf("UNKNOWN_STATE(%#x)", state);
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 91fb681a691..cca8c9cf07d 100644
index a2048fc6ea6..17ad7869d1b 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1838,7 +1838,10 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state
@ -273,7 +273,7 @@ index 91fb681a691..cca8c9cf07d 100644
#define STATE_COMPUTE_SHADER (STATE_COMPUTE_OFFSET)
#define STATE_IS_COMPUTE_SHADER(a) ((a) == STATE_COMPUTE_SHADER)
@@ -3676,6 +3679,13 @@ struct wined3d_light_state
@@ -3670,6 +3673,13 @@ struct wined3d_light_state
const struct wined3d_light_info *lights[WINED3D_MAX_ACTIVE_LIGHTS];
};
@ -287,7 +287,7 @@ index 91fb681a691..cca8c9cf07d 100644
#define WINED3D_STATE_NO_REF 0x00000001
#define WINED3D_STATE_INIT_DEFAULT 0x00000002
@@ -3730,8 +3740,11 @@ struct wined3d_state
@@ -3724,8 +3734,11 @@ struct wined3d_state
struct wined3d_blend_state *blend_state;
struct wined3d_color blend_factor;
unsigned int sample_mask;
@ -299,10 +299,10 @@ index 91fb681a691..cca8c9cf07d 100644
struct wined3d_rasterizer_state *rasterizer_state;
};
@@ -4813,6 +4826,8 @@ void wined3d_device_context_emit_set_clip_plane(struct wined3d_device_context *c
@@ -4806,6 +4819,8 @@ void wined3d_device_context_emit_set_clip_plane(struct wined3d_device_context *c
void wined3d_device_context_emit_set_constant_buffers(struct wined3d_device_context *context,
enum wined3d_shader_type type, unsigned int start_idx, unsigned int count,
struct wined3d_buffer *const *buffers) DECLSPEC_HIDDEN;
const struct wined3d_constant_buffer_state *buffers) DECLSPEC_HIDDEN;
+void wined3d_device_context_emit_set_depth_bounds(struct wined3d_device_context *context,
+ BOOL enable, float min, float max) DECLSPEC_HIDDEN;
void wined3d_device_context_emit_set_depth_stencil_state(struct wined3d_device_context *context,

View File

@ -1,4 +1,4 @@
From 929a7c148fd83663ffde2a853177a6ca2c30588c Mon Sep 17 00:00:00 2001
From ede7d81998194cecad240bd3df4cd902c01a0bde Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sat, 22 May 2021 18:11:07 -0500
Subject: [PATCH] nvapi: Implement NvAPI_D3D11_SetDepthBoundsTest().
@ -117,10 +117,10 @@ index c8b66ac2fa3..b8b4750203a 100644
/* d3d9 tests */
wc.lpfnWndProc = DefWindowProcA;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 0d6cd8871c1..9910b0e3529 100644
index cc100b02bac..962112074a4 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1925,7 +1925,7 @@ void CDECL wined3d_device_context_set_rasterizer_state(struct wined3d_device_con
@@ -1891,7 +1891,7 @@ void CDECL wined3d_device_context_set_rasterizer_state(struct wined3d_device_con
wined3d_rasterizer_state_decref(prev);
}
@ -130,7 +130,7 @@ index 0d6cd8871c1..9910b0e3529 100644
{
TRACE("context %p, enable %d, min %.8e, max %.8e.\n", context, enable, min, max);
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index 4d4f34f8d6a..e83847aa9f9 100644
index 1bce4def265..802194dcbec 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -124,6 +124,7 @@
@ -142,13 +142,13 @@ index 4d4f34f8d6a..e83847aa9f9 100644
@ cdecl wined3d_device_context_set_depth_stencil_view(ptr ptr)
@ cdecl wined3d_device_context_set_index_buffer(ptr ptr long long)
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 80a636edc9f..2167d95d0b8 100644
index 7be893b8f21..689fc55fdfe 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2499,6 +2499,8 @@ void __cdecl wined3d_device_context_set_blend_state(struct wined3d_device_contex
@@ -2513,6 +2513,8 @@ void __cdecl wined3d_device_context_set_blend_state(struct wined3d_device_contex
void __cdecl wined3d_device_context_set_constant_buffers(struct wined3d_device_context *context,
enum wined3d_shader_type type, unsigned int start_idx, unsigned int count,
struct wined3d_buffer *const *buffers);
const struct wined3d_constant_buffer_state *buffers);
+void __cdecl wined3d_device_context_set_depth_bounds(struct wined3d_device_context *context,
+ BOOL enable, float min, float max);
void __cdecl wined3d_device_context_set_depth_stencil_state(struct wined3d_device_context *context,

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "49cde0995827b24aa9c1ef1b6a0372797f4166e0"
echo "d60c450c7be196c2072f74e34f7760d39e3bad32"
}
# Show version information

View File

@ -1,4 +1,4 @@
From de420388d95e30644947be15c42bfa51349f48f9 Mon Sep 17 00:00:00 2001
From e2968954fd14577e9d2785c304ab397eee712b12 Mon Sep 17 00:00:00 2001
From: Paul Gofman <gofmanp@gmail.com>
Date: Mon, 25 Feb 2019 14:47:28 +0300
Subject: [PATCH] wined3d: Report actual vertex shader float constants limit
@ -13,10 +13,10 @@ Subject: [PATCH] wined3d: Report actual vertex shader float constants limit
5 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 078a874e1c..f1cb7d9659 100644
index bdaf2a64b33..621593d3d66 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -5140,7 +5140,8 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_
@@ -5104,7 +5104,8 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_
d3d_info->limits.gs_version = shader_caps.gs_version;
d3d_info->limits.ps_version = shader_caps.ps_version;
d3d_info->limits.cs_version = shader_caps.cs_version;
@ -27,10 +27,10 @@ index 078a874e1c..f1cb7d9659 100644
d3d_info->limits.varying_count = shader_caps.varying_count;
d3d_info->limits.ffp_textures = fragment_caps.MaxSimultaneousTextures;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 42d645d201..b2db48ecf0 100644
index 743bec85106..72841c3375a 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3796,9 +3796,16 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
@@ -3997,9 +3997,16 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device,
HRESULT CDECL wined3d_device_get_device_caps(const struct wined3d_device *device, struct wined3d_caps *caps)
{
@ -49,10 +49,10 @@ index 42d645d201..b2db48ecf0 100644
HRESULT CDECL wined3d_device_get_display_mode(const struct wined3d_device *device, UINT swapchain_idx,
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index e306694533..4f7cc772be 100644
index 34865b7ecd1..118bcf2f23f 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -11261,7 +11261,10 @@ static void shader_glsl_get_caps(const struct wined3d_adapter *adapter, struct s
@@ -11307,7 +11307,10 @@ static void shader_glsl_get_caps(const struct wined3d_adapter *adapter, struct s
caps->vs_version = gl_info->supported[ARB_VERTEX_SHADER] ? caps->vs_version : 0;
caps->ps_version = gl_info->supported[ARB_FRAGMENT_SHADER] ? caps->ps_version : 0;
@ -65,10 +65,10 @@ index e306694533..4f7cc772be 100644
caps->varying_count = gl_info->limits.glsl_varyings;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index b09811b845..51b5cc4ac7 100644
index ba6de78f701..23e648fa953 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -173,6 +173,7 @@ struct wined3d_d3d_limits
@@ -186,6 +186,7 @@ struct wined3d_d3d_limits
{
unsigned int vs_version, hs_version, ds_version, gs_version, ps_version, cs_version;
DWORD vs_uniform_count;
@ -77,17 +77,17 @@ index b09811b845..51b5cc4ac7 100644
unsigned int varying_count;
unsigned int ffp_textures;
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 1199408ec6..3606c4e245 100644
index cfd8eecdcca..6cf2cc12e46 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1602,6 +1602,7 @@ enum wined3d_shader_type
@@ -1610,6 +1610,7 @@ enum wined3d_pipeline
#define WINED3D_MAX_CONSTS_B 16
#define WINED3D_MAX_CONSTS_I 16
#define WINED3D_MAX_VS_CONSTS_F 256
+#define WINED3D_MAX_VS_CONSTS_F_SWVP 8192
#define WINED3D_MAX_PS_CONSTS_F 224
#define WINED3D_MAX_RENDER_TARGETS 8
#define WINED3D_MAX_CONSTANT_BUFFER_SIZE 4096
--
2.25.1
2.30.2

View File

@ -1 +1 @@
49cde0995827b24aa9c1ef1b6a0372797f4166e0
d60c450c7be196c2072f74e34f7760d39e3bad32