Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/mesa.git#5f870587e07b22f651509a6d8469227e0b0b838f
This commit is contained in:
parent
dbe8f9cf9a
commit
e23736c28e
@ -1,89 +0,0 @@
|
||||
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
|
||||
index 8747ef4aa8a..3b34e32cd21 100644
|
||||
--- a/src/gallium/drivers/iris/iris_resource.c
|
||||
+++ b/src/gallium/drivers/iris/iris_resource.c
|
||||
@@ -1125,6 +1125,20 @@ iris_flush_resource(struct pipe_context *ctx, struct pipe_resource *resource)
|
||||
0, INTEL_REMAINING_LAYERS,
|
||||
mod ? mod->aux_usage : ISL_AUX_USAGE_NONE,
|
||||
mod ? mod->supports_clear_color : false);
|
||||
+
|
||||
+ if (!res->mod_info && res->aux.usage != ISL_AUX_USAGE_NONE) {
|
||||
+ /* flush_resource may be used to prepare an image for sharing external
|
||||
+ * to the driver (e.g. via eglCreateImage). To account for this, make
|
||||
+ * sure to get rid of any compression that a consumer wouldn't know how
|
||||
+ * to handle.
|
||||
+ */
|
||||
+ for (int i = 0; i < IRIS_BATCH_COUNT; i++) {
|
||||
+ if (iris_batch_references(&ice->batches[i], res->bo))
|
||||
+ iris_batch_flush(&ice->batches[i]);
|
||||
+ }
|
||||
+
|
||||
+ iris_resource_disable_aux(res);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/src/gallium/frontends/dri/dri_helpers.c b/src/gallium/frontends/dri/dri_helpers.c
|
||||
index 01a1fb3d96c..5e87df35a55 100644
|
||||
--- a/src/gallium/frontends/dri/dri_helpers.c
|
||||
+++ b/src/gallium/frontends/dri/dri_helpers.c
|
||||
@@ -258,7 +258,9 @@ dri2_create_image_from_renderbuffer2(__DRIcontext *context,
|
||||
int renderbuffer, void *loaderPrivate,
|
||||
unsigned *error)
|
||||
{
|
||||
- struct gl_context *ctx = ((struct st_context *)dri_context(context)->st)->ctx;
|
||||
+ struct st_context *st_ctx = (struct st_context *)dri_context(context)->st;
|
||||
+ struct gl_context *ctx = st_ctx->ctx;
|
||||
+ struct pipe_context *p_ctx = st_ctx->pipe;
|
||||
struct gl_renderbuffer *rb;
|
||||
struct pipe_resource *tex;
|
||||
__DRIimage *img;
|
||||
@@ -299,6 +301,13 @@ dri2_create_image_from_renderbuffer2(__DRIcontext *context,
|
||||
|
||||
pipe_resource_reference(&img->texture, tex);
|
||||
|
||||
+ /* If the resource supports EGL_MESA_image_dma_buf_export, make sure that
|
||||
+ * it's in a shareable state. Do this now while we still have the access to
|
||||
+ * the context.
|
||||
+ */
|
||||
+ if (dri2_get_mapping_by_format(img->dri_format))
|
||||
+ p_ctx->flush_resource(p_ctx, tex);
|
||||
+
|
||||
*error = __DRI_IMAGE_ERROR_SUCCESS;
|
||||
return img;
|
||||
}
|
||||
@@ -326,7 +335,9 @@ dri2_create_from_texture(__DRIcontext *context, int target, unsigned texture,
|
||||
void *loaderPrivate)
|
||||
{
|
||||
__DRIimage *img;
|
||||
- struct gl_context *ctx = ((struct st_context *)dri_context(context)->st)->ctx;
|
||||
+ struct st_context *st_ctx = (struct st_context *)dri_context(context)->st;
|
||||
+ struct gl_context *ctx = st_ctx->ctx;
|
||||
+ struct pipe_context *p_ctx = st_ctx->pipe;
|
||||
struct gl_texture_object *obj;
|
||||
struct pipe_resource *tex;
|
||||
GLuint face = 0;
|
||||
@@ -376,6 +387,13 @@ dri2_create_from_texture(__DRIcontext *context, int target, unsigned texture,
|
||||
|
||||
pipe_resource_reference(&img->texture, tex);
|
||||
|
||||
+ /* If the resource supports EGL_MESA_image_dma_buf_export, make sure that
|
||||
+ * it's in a shareable state. Do this now while we still have the access to
|
||||
+ * the context.
|
||||
+ */
|
||||
+ if (dri2_get_mapping_by_format(img->dri_format))
|
||||
+ p_ctx->flush_resource(p_ctx, tex);
|
||||
+
|
||||
*error = __DRI_IMAGE_ERROR_SUCCESS;
|
||||
return img;
|
||||
}
|
||||
@@ -547,6 +565,9 @@ dri2_get_mapping_by_fourcc(int fourcc)
|
||||
const struct dri2_format_mapping *
|
||||
dri2_get_mapping_by_format(int format)
|
||||
{
|
||||
+ if (format == __DRI_IMAGE_FORMAT_NONE)
|
||||
+ return NULL;
|
||||
+
|
||||
for (unsigned i = 0; i < ARRAY_SIZE(dri2_format_table); i++) {
|
||||
if (dri2_format_table[i].dri_format == format)
|
||||
return &dri2_format_table[i];
|
10
mesa.spec
10
mesa.spec
@ -48,9 +48,9 @@
|
||||
|
||||
Name: mesa
|
||||
Summary: Mesa graphics libraries
|
||||
%global ver 21.0.0-rc3
|
||||
%global ver 21.0.0-rc4
|
||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||
Release: 2%{?dist}
|
||||
Release: 1%{?dist}
|
||||
License: MIT
|
||||
URL: http://www.mesa3d.org
|
||||
|
||||
@ -60,9 +60,6 @@ Source0: https://mesa.freedesktop.org/archive/%{name}-%{ver}.tar.xz
|
||||
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
||||
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||
|
||||
# fix qemu/egl issue
|
||||
Patch2: fix-egl.patch
|
||||
|
||||
# fix zink/swrast/gnome-shell
|
||||
Patch3: 0001-zink-don-t-pick-a-cpu-device-ever.patch
|
||||
|
||||
@ -599,6 +596,9 @@ popd
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Feb 17 2021 Pete Walter <pwalter@fedoraproject.org> - 21.0.0~rc4-1
|
||||
- Update to 21.0.0-rc4
|
||||
|
||||
* Wed Feb 03 2021 Dave Airlie <airlied@redhat.com> - 21.0.0~rc3-2
|
||||
- Fix zink/swrast/lavapipe/gnome-shell interaction (#1924360)
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (mesa-21.0.0-rc3.tar.xz) = b51495e8ef3a4a2f1b98ad3c4f5037c21b4b7df375138bcc02b24cb4b7ffd7b807d76ac0853d0ecc81c09ceca2a97e5c402352700f297ed7f4369f98d03a0810
|
||||
SHA512 (mesa-21.0.0-rc4.tar.xz) = 4cad13181accd0ac49efcca041bcebdaeeaf0a8b62bfce064b8668fc6b5e7fe1cf01db1d1291a25fc0cf0593ec1c227fd6e23dd45d9a16b458165594690179c4
|
||||
|
Loading…
Reference in New Issue
Block a user