From 14047b1d59516ba433f6c726c8ff460baad5716b4b71ac69e908e60e08369656 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Thu, 23 Feb 2012 13:38:22 +0000 Subject: [PATCH] - Update to Mesa 8.0.1 * Removed all DRI drivers that did not support DRI2. Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and unichrome were removed. * Removed all remnants of paletted texture support. As required by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded to a color (e.g., RGBA) texture. However, the data cannot be stored internally as color-index. * Removed support for GL_APPLE_client_storage extension. * Removed the classic Mesa r300 and r600 drivers, which are superseded by the gallium drivers for this hardware. * Removed the dead Gallium i965, cell and failover drivers, which were either broken and with nobody in sight to fix the situation or deprecated. - obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch (git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16) - obsoletes U_Mesa-7.11-llvm3.patch - obsoletes Mesa-llvm-3.0.patch - disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch for now (obsolete as well?) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=196 --- Mesa-llvm-3.0.patch | 105 --------- Mesa.changes | 24 ++ Mesa.spec | 33 ++- MesaLib-7.11.1.tar.bz2 | 3 - MesaLib-8.0.1.tar.bz2 | 3 + U_Mesa-7.11-llvm3.patch | 218 ------------------ ...GLX-with-SWrast-enabled-work-on-olde.patch | 32 --- 7 files changed, 41 insertions(+), 377 deletions(-) delete mode 100644 Mesa-llvm-3.0.patch delete mode 100644 MesaLib-7.11.1.tar.bz2 create mode 100644 MesaLib-8.0.1.tar.bz2 delete mode 100644 U_Mesa-7.11-llvm3.patch delete mode 100644 u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch diff --git a/Mesa-llvm-3.0.patch b/Mesa-llvm-3.0.patch deleted file mode 100644 index b675c7a..0000000 --- a/Mesa-llvm-3.0.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -index 29dfb86..f44749d 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -@@ -27,17 +27,23 @@ - - #include - #include --#include --#include - #include - #include - #include - -+#if HAVE_LLVM >= 0x0300 -+#include -+#include -+#else /* HAVE_LLVM < 0x0300 */ -+#include -+#include -+#endif /* HAVE_LLVM < 0x0300 */ -+ - #if HAVE_LLVM >= 0x0209 - #include --#else -+#else /* HAVE_LLVM < 0x0209 */ - #include --#endif -+#endif /* HAVE_LLVM < 0x0209 */ - - #if HAVE_LLVM >= 0x0207 - #include -@@ -193,14 +199,23 @@ lp_disassemble(const void* func) - - InitializeAllDisassemblers(); - -+#if HAVE_LLVM >= 0x0300 -+ OwningPtr AsmInfo(T->createMCAsmInfo(Triple)); -+#else - OwningPtr AsmInfo(T->createAsmInfo(Triple)); -+#endif - - if (!AsmInfo) { - debug_printf("error: no assembly info for target %s\n", Triple.c_str()); - return; - } - -+#if HAVE_LLVM >= 0x0300 -+ const MCSubtargetInfo *STI = T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), ""); -+ OwningPtr DisAsm(T->createMCDisassembler(*STI)); -+#else - OwningPtr DisAsm(T->createMCDisassembler()); -+#endif - if (!DisAsm) { - debug_printf("error: no disassembler for target %s\n", Triple.c_str()); - return; -@@ -213,7 +228,11 @@ lp_disassemble(const void* func) - #else - int AsmPrinterVariant = AsmInfo->getAssemblerDialect(); - #endif --#if HAVE_LLVM >= 0x0208 -+ -+#if HAVE_LLVM >= 0x0300 -+ OwningPtr Printer( -+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI)); -+#elif HAVE_LLVM >= 0x0208 - OwningPtr Printer( - T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo)); - #else -@@ -253,7 +272,11 @@ lp_disassemble(const void* func) - - if (!DisAsm->getInstruction(Inst, Size, memoryObject, - pc, -- nulls())) { -+#if HAVE_LLVM >= 0x0300 -+ nulls(), nulls())) { -+#else -+ nulls())) { -+#endif - debug_printf("invalid\n"); - pc += 1; - } -@@ -276,7 +299,9 @@ lp_disassemble(const void* func) - * Print the instruction. - */ - --#if HAVE_LLVM >= 0x208 -+#if HAVE_LLVM >= 0x0300 -+ Printer->printInst(&Inst, Out, ""); -+#elif HAVE_LLVM >= 0x208 - Printer->printInst(&Inst, Out); - #else - Printer->printInst(&Inst); -@@ -289,7 +314,11 @@ - - pc += Size; - -+#if HAVE_LLVM >= 0x0300 -+ const MCInstrDesc &TID = TII->get(Inst.getOpcode()); -+#else - const TargetInstrDesc &TID = TII->get(Inst.getOpcode()); -+#endif - - /* - * Keep track of forward jumps to a nearby address. diff --git a/Mesa.changes b/Mesa.changes index 05dc1dd..f93ffb1 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Thu Feb 23 10:57:09 UTC 2012 - sndirsch@suse.com + +- Update to Mesa 8.0.1 + * Removed all DRI drivers that did not support DRI2. + Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and + unichrome were removed. + * Removed all remnants of paletted texture support. As required + by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded + to a color (e.g., RGBA) texture. However, the data cannot be + stored internally as color-index. + * Removed support for GL_APPLE_client_storage extension. + * Removed the classic Mesa r300 and r600 drivers, which are + superseded by the gallium drivers for this hardware. + * Removed the dead Gallium i965, cell and failover drivers, + which were either broken and with nobody in sight to fix + the situation or deprecated. +- obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch + (git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16) +- obsoletes U_Mesa-7.11-llvm3.patch +- obsoletes Mesa-llvm-3.0.patch +- disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch + for now (obsolete as well?) + ------------------------------------------------------------------- Wed Feb 22 14:27:44 UTC 2012 - jengelh@medozas.de diff --git a/Mesa.spec b/Mesa.spec index 19cb693..a230057 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -15,11 +15,12 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + # -%define _version 7.11.1 +%define _version 8.0.1 Name: Mesa -Version: 7.11.1 +Version: 8.0.1 Release: 0 BuildRequires: autoconf >= 2.59 BuildRequires: automake @@ -52,6 +53,7 @@ BuildRequires: pkgconfig(xxf86vm) %ifarch %ix86 x86_64 BuildRequires: llvm-devel %endif +BuildRequires: vim Url: http://www.mesa3d.org Provides: Mesa7 = %{version} Obsoletes: Mesa7 < %{version} @@ -77,11 +79,8 @@ Source4: manual-pages.tar.bz2 Source5: drirc Source6: %name-rpmlintrc # to be upstreamed -Patch9: u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch Patch11: u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch # already upstream -Patch13: U_Mesa-7.11-llvm3.patch -Patch15: Mesa-llvm-3.0.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -109,7 +108,7 @@ Requires: Mesa-libGLESv1_CM-devel = %version Requires: Mesa-libGLESv2-devel = %version Requires: Mesa-libGLU-devel = %version Requires: Mesa-libIndirectGL1 = %version -Requires: libOSMesa7 = %version +Requires: libOSMesa8 = %version Requires: Mesa-libglapi0 = %version Requires: libgbm-devel # bug437293 @@ -300,11 +299,11 @@ This library provides a pure software rasterizer; it does not provide a direct rendering capable library, or one which uses GLX. For that, please see Mesa-libGL1. -%package -n libOSMesa7 +%package -n libOSMesa8 Summary: Mesa Off-screen rendering extension Group: System/Libraries -%description -n libOSMesa7 +%description -n libOSMesa8 OSmesa is a Mesa extension that allows programs to render to an off-screen buffer using the OpenGL API without having to create a rendering context on an X Server. It uses a pure software renderer. @@ -359,10 +358,7 @@ rm -rf src/glut progs/{demos,redbook,samples,xdemos,glsl} rm -f include/GL/{glut.h,uglglutshapes.h,glutf90.h} # remove some docs rm -rf docs/README.{VMS,WIN32,OS2} -%patch9 -p1 -%patch11 -p1 -%patch13 -p0 -%patch15 -p1 +#%patch11 -p1 %build @@ -371,7 +367,6 @@ rm -f src/mesa/depend export TALLOC_LIBS=-ltalloc export TALLOC_CFLAGS="-I/usr/include" autoreconf -fi -### libGL (disable savage/mga, bnc #402132/#403071; reenable mga, bnc #466635) %configure --disable-glw \ --enable-gles1 \ --enable-gles2 \ @@ -381,7 +376,7 @@ autoreconf -fi --enable-shared-dricore \ --with-dri-searchpath=/usr/%{_lib}/dri/updates:/usr/%{_lib}/dri \ %ifarch %ix86 x86_64 - --with-dri-drivers=i810,i915,i965,mach64,nouveau,r128,r200,radeon,sis,tdfx,unichrome,swrast,mga \ + --with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast \ %if 0%{?suse_version} >= 1130 --with-gallium-drivers=r300,r600,nouveau \ %else @@ -389,7 +384,7 @@ autoreconf -fi %endif %endif %ifarch ppc ppc64 %sparc hppa - --with-dri-drivers=i810,i915,i965,mach64,nouveau,r128,r200,radeon,tdfx,unichrome,swrast \ + --with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast \ %if 0%{?suse_version} >= 1130 --with-gallium-drivers=r300,r600,nouveau \ %else @@ -460,9 +455,9 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %postun -n Mesa-libIndirectGL1 -p /sbin/ldconfig -%post -n libOSMesa7 -p /sbin/ldconfig +%post -n libOSMesa8 -p /sbin/ldconfig -%postun -n libOSMesa7 -p /sbin/ldconfig +%postun -n libOSMesa8 -p /sbin/ldconfig %post -n libgbm1 -p /sbin/ldconfig @@ -539,9 +534,9 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %defattr(-,root,root) %_libdir/libIndirectGL.so.1* -%files -n libOSMesa7 +%files -n libOSMesa8 %defattr(-,root,root) -%_libdir/libOSMesa.so.7* +%_libdir/libOSMesa.so.8* %files -n libgbm1 %defattr(-,root,root) diff --git a/MesaLib-7.11.1.tar.bz2 b/MesaLib-7.11.1.tar.bz2 deleted file mode 100644 index 685046b..0000000 --- a/MesaLib-7.11.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0dbc1c12434caa25f52e398053a97515aa67a81b9e7fe621572835fb61b08fc4 -size 6662652 diff --git a/MesaLib-8.0.1.tar.bz2 b/MesaLib-8.0.1.tar.bz2 new file mode 100644 index 0000000..9db5ee2 --- /dev/null +++ b/MesaLib-8.0.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:593af02ea2b5b7afb057a12c550f2c03b1d1cf59a716972d601c1499545ea0a7 +size 5694019 diff --git a/U_Mesa-7.11-llvm3.patch b/U_Mesa-7.11-llvm3.patch deleted file mode 100644 index 137fcc8..0000000 --- a/U_Mesa-7.11-llvm3.patch +++ /dev/null @@ -1,218 +0,0 @@ -Makes Mesa work with LLVM3 (also pre-releases). - -Included in Mesa in post-11.7 -Index: src/gallium/auxiliary/gallivm/lp_bld_type.c -=================================================================== ---- src/gallium/auxiliary/gallivm/lp_bld_type.c.orig -+++ src/gallium/auxiliary/gallivm/lp_bld_type.c -@@ -325,8 +325,10 @@ lp_typekind_name(LLVMTypeKind t) - return "LLVMArrayTypeKind"; - case LLVMPointerTypeKind: - return "LLVMPointerTypeKind"; -+#if HAVE_LLVM < 0x0300 - case LLVMOpaqueTypeKind: - return "LLVMOpaqueTypeKind"; -+#endif - case LLVMVectorTypeKind: - return "LLVMVectorTypeKind"; - case LLVMMetadataTypeKind: -Index: src/gallium/auxiliary/draw/draw_llvm.c -=================================================================== ---- src/gallium/auxiliary/draw/draw_llvm.c.orig -+++ src/gallium/auxiliary/draw/draw_llvm.c -@@ -96,7 +96,7 @@ draw_llvm_generate_elts(struct draw_llvm - * Create LLVM type for struct draw_jit_texture - */ - static LLVMTypeRef --create_jit_texture_type(struct gallivm_state *gallivm) -+create_jit_texture_type(struct gallivm_state *gallivm, const char *struct_name) - { - LLVMTargetDataRef target = gallivm->target; - LLVMTypeRef texture_type; -@@ -120,13 +120,21 @@ create_jit_texture_type(struct gallivm_s - elem_types[DRAW_JIT_TEXTURE_BORDER_COLOR] = - LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4); - -+#if HAVE_LLVM >= 0x0300 -+ texture_type = LLVMStructCreateNamed(gallivm->context, struct_name); -+ LLVMStructSetBody(texture_type, elem_types, -+ Elements(elem_types), 0); -+#else - texture_type = LLVMStructTypeInContext(gallivm->context, elem_types, - Elements(elem_types), 0); - -+ LLVMAddTypeName(gallivm->module, struct_name, texture_type); -+ - /* Make sure the target's struct layout cache doesn't return - * stale/invalid data. - */ - LLVMInvalidateStructLayout(gallivm->target, texture_type); -+#endif - - LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width, - target, texture_type, -@@ -176,7 +184,7 @@ create_jit_texture_type(struct gallivm_s - */ - static LLVMTypeRef - create_jit_context_type(struct gallivm_state *gallivm, -- LLVMTypeRef texture_type) -+ LLVMTypeRef texture_type, const char *struct_name) - { - LLVMTargetDataRef target = gallivm->target; - LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context); -@@ -189,11 +197,17 @@ create_jit_context_type(struct gallivm_s - elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */ - elem_types[4] = LLVMArrayType(texture_type, - PIPE_MAX_VERTEX_SAMPLERS); /* textures */ -- -+#if HAVE_LLVM >= 0x0300 -+ context_type = LLVMStructCreateNamed(gallivm->context, struct_name); -+ LLVMStructSetBody(context_type, elem_types, -+ Elements(elem_types), 0); -+#else - context_type = LLVMStructTypeInContext(gallivm->context, elem_types, - Elements(elem_types), 0); -+ LLVMAddTypeName(gallivm->module, struct_name, context_type); - - LLVMInvalidateStructLayout(gallivm->target, context_type); -+#endif - - LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants, - target, context_type, 0); -@@ -215,7 +229,7 @@ create_jit_context_type(struct gallivm_s - * Create LLVM type for struct pipe_vertex_buffer - */ - static LLVMTypeRef --create_jit_vertex_buffer_type(struct gallivm_state *gallivm) -+create_jit_vertex_buffer_type(struct gallivm_state *gallivm, const char *struct_name) - { - LLVMTargetDataRef target = gallivm->target; - LLVMTypeRef elem_types[3]; -@@ -225,10 +239,17 @@ create_jit_vertex_buffer_type(struct gal - elem_types[1] = LLVMInt32TypeInContext(gallivm->context); - elem_types[2] = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); /* vs_constants */ - -+#if HAVE_LLVM >= 0x0300 -+ vb_type = LLVMStructCreateNamed(gallivm->context, struct_name); -+ LLVMStructSetBody(vb_type, elem_types, -+ Elements(elem_types), 0); -+#else - vb_type = LLVMStructTypeInContext(gallivm->context, elem_types, - Elements(elem_types), 0); -+ LLVMAddTypeName(gallivm->module, struct_name, vb_type); - - LLVMInvalidateStructLayout(gallivm->target, vb_type); -+#endif - - LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride, - target, vb_type, 0); -@@ -258,10 +279,17 @@ create_jit_vertex_header(struct gallivm_ - elem_types[1] = LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4); - elem_types[2] = LLVMArrayType(elem_types[1], data_elems); - -+#if HAVE_LLVM >= 0x0300 -+ vertex_header = LLVMStructCreateNamed(gallivm->context, struct_name); -+ LLVMStructSetBody(vertex_header, elem_types, -+ Elements(elem_types), 0); -+#else - vertex_header = LLVMStructTypeInContext(gallivm->context, elem_types, - Elements(elem_types), 0); -+ LLVMAddTypeName(gallivm->module, struct_name, vertex_header); - - LLVMInvalidateStructLayout(gallivm->target, vertex_header); -+#endif - - /* these are bit-fields and we can't take address of them - LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask, -@@ -284,8 +312,6 @@ create_jit_vertex_header(struct gallivm_ - target, vertex_header, - DRAW_JIT_VERTEX_DATA); - -- LLVMAddTypeName(gallivm->module, struct_name, vertex_header); -- - return vertex_header; - } - -@@ -299,19 +325,15 @@ create_jit_types(struct draw_llvm *llvm) - struct gallivm_state *gallivm = llvm->gallivm; - LLVMTypeRef texture_type, context_type, buffer_type, vb_type; - -- texture_type = create_jit_texture_type(gallivm); -- LLVMAddTypeName(gallivm->module, "texture", texture_type); -+ texture_type = create_jit_texture_type(gallivm, "texture"); - -- context_type = create_jit_context_type(gallivm, texture_type); -- LLVMAddTypeName(gallivm->module, "draw_jit_context", context_type); -+ context_type = create_jit_context_type(gallivm, texture_type, "draw_jit_context"); - llvm->context_ptr_type = LLVMPointerType(context_type, 0); - - buffer_type = LLVMPointerType(LLVMIntTypeInContext(gallivm->context, 8), 0); -- LLVMAddTypeName(gallivm->module, "buffer", buffer_type); - llvm->buffer_ptr_type = LLVMPointerType(buffer_type, 0); - -- vb_type = create_jit_vertex_buffer_type(gallivm); -- LLVMAddTypeName(gallivm->module, "pipe_vertex_buffer", vb_type); -+ vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer"); - llvm->vb_ptr_type = LLVMPointerType(vb_type, 0); - } - -Index: src/gallium/drivers/llvmpipe/lp_jit.c -=================================================================== ---- src/gallium/drivers/llvmpipe/lp_jit.c.orig -+++ src/gallium/drivers/llvmpipe/lp_jit.c -@@ -68,10 +68,17 @@ lp_jit_create_types(struct llvmpipe_cont - elem_types[LP_JIT_TEXTURE_BORDER_COLOR] = - LLVMArrayType(LLVMFloatTypeInContext(lc), 4); - -+#if HAVE_LLVM >= 0x0300 -+ texture_type = LLVMStructCreateNamed(gallivm->context, "texture"); -+ LLVMStructSetBody(texture_type, elem_types, -+ Elements(elem_types), 0); -+#else - texture_type = LLVMStructTypeInContext(lc, elem_types, - Elements(elem_types), 0); -+ LLVMAddTypeName(gallivm->module, "texture", texture_type); - - LLVMInvalidateStructLayout(gallivm->target, texture_type); -+#endif - - LP_CHECK_MEMBER_OFFSET(struct lp_jit_texture, width, - gallivm->target, texture_type, -@@ -112,8 +119,6 @@ lp_jit_create_types(struct llvmpipe_cont - - LP_CHECK_STRUCT_SIZE(struct lp_jit_texture, - gallivm->target, texture_type); -- -- LLVMAddTypeName(gallivm->module, "texture", texture_type); - } - - /* struct lp_jit_context */ -@@ -129,11 +134,19 @@ lp_jit_create_types(struct llvmpipe_cont - elem_types[LP_JIT_CTX_TEXTURES] = LLVMArrayType(texture_type, - PIPE_MAX_SAMPLERS); - -+#if HAVE_LLVM >= 0x0300 -+ context_type = LLVMStructCreateNamed(gallivm->context, "context"); -+ LLVMStructSetBody(context_type, elem_types, -+ Elements(elem_types), 0); -+#else - context_type = LLVMStructTypeInContext(lc, elem_types, - Elements(elem_types), 0); - - LLVMInvalidateStructLayout(gallivm->target, context_type); - -+ LLVMAddTypeName(gallivm->module, "context", context_type); -+#endif -+ - LP_CHECK_MEMBER_OFFSET(struct lp_jit_context, constants, - gallivm->target, context_type, - LP_JIT_CTX_CONSTANTS); -@@ -155,8 +168,6 @@ lp_jit_create_types(struct llvmpipe_cont - LP_CHECK_STRUCT_SIZE(struct lp_jit_context, - gallivm->target, context_type); - -- LLVMAddTypeName(gallivm->module, "context", context_type); -- - lp->jit_context_ptr_type = LLVMPointerType(context_type, 0); - } - diff --git a/u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch b/u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch deleted file mode 100644 index 7bf31e7..0000000 --- a/u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch +++ /dev/null @@ -1,32 +0,0 @@ -From bb5ac44693cc6a50de068c729a089b7bdd6db4cd Mon Sep 17 00:00:00 2001 -From: Egbert Eich -Date: Thu, 9 Jun 2011 12:42:59 +0200 -Subject: [PATCH] [GLX/SWrast] Make GLX with SWrast enabled work on older Xservers. -Patch-mainline: To be upstreamed - -Older Xservers don't offer a set of configs/visuals that is compatible -with DRI. If no visuals or configs are found let driswCreateScreen() -fail so that the next fallback path is take. - -Signed-off-by: Egbert Eich ---- - src/glx/drisw_glx.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c -index 2eaa3c5..7bf29af 100644 ---- a/src/glx/drisw_glx.c -+++ b/src/glx/drisw_glx.c -@@ -490,6 +490,9 @@ driswCreateScreen(int screen, struct glx_display *priv) - psc->base.visuals = - driConvertConfigs(psc->core, psc->base.visuals, driver_configs); - -+ if (psc->base.configs == NULL || psc->base.visuals == NULL) -+ goto handle_error; -+ - psc->driver_configs = driver_configs; - - psc->base.vtable = &drisw_screen_vtable; --- -1.7.3.4 -