- Oct 10, 2015
-
-
Emil Velikov authored
Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
-
Emil Velikov authored
Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
-
Emil Velikov authored
This reverts commit 30570b26. As mentioned by Ilia Mirkin: Please remove this one from your list of cherry-picked patches. While it fixes real issues on nv30 (and probably the other generations too), it appears to introduce some new ones on nvc0. I've figured out what's causing it, but haven't figured out a proper fix. Not sure I'll be able to before you do a release.
-
The EXT_texture_format_BGRA8888 extension (which mesa supports unconditionally) adds a new format and internal format called GL_BGRA_EXT. Previously, this was not really handled at all in _mesa_ex3_error_check_format_and_type. When the checks were tightened in commit f15a7f3c, we accidentally tightened things too far and GL_BGRA_EXT would always cause an error to be thrown. There were two primary issues here. First, is that _mesa_es3_effective_internal_format_for_format_and_type didn't handle the GL_BGRA_EXT format. Second is that it blindly uses _mesa_base_tex_format which returns GL_RGBA for GL_BGRA_EXT. This commit fixes both of these issues as well as adds explicit checks that GL_BGRA_EXT is only ever used with GL_BGRA_EXT and GL_UNSIGNED_BYTE. Signed-off-by:
Jason Ekstrand <jason.ekstrand@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92265 Reviewed-by:
Ian Romanick <ian.d.romanick@intel.com> Cc: "11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 6ad9ebb0)
-
- Oct 07, 2015
-
-
Fixes Gallium based DRI drivers failing to load on big endian hosts because they can't find any matching fbconfigs. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71789 Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Tested-by:
Ilia Mirkin <imirkin@alum.mit.edu> (cherry picked from commit 87c3c9ac) Nominated-by:
Ilia Mirkin <imirkin@alum.mit.edu>
-
commit c2c2e9ab (egl: implement EGL_KHR_gl_colorspace (v2)) leaves _EGLConfig->SurfaceType set incorrectly before calling _eglLinkConfig(), and the bad value is passed around to platform_android. set it to zero as earlier. v2: Set SurfaceType to 0, rather than surface_type (Suggested by Emil) Cc: mesa-stable@lists.freedesktop.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91596 Signed-off-by:
Varad Gautam <varadgautam@gmail.com> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> (cherry picked from commit f988eff3)
-
I started seeing a lot of situations on nv30 where fence emission wouldn't fit into the previous buffer (causing assertions). This ensures that whenever checking for space, we always leave a bit of extra room for the fence emission commands. Adjusts the nv30 and nvc0 fence emission logic to bypass the space checking as well. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> (cherry picked from commit 47d11990)
-
It seems like things are either coming in slighly wrong, or perhaps uploaded incorrectly, but either way passing them through the translate module seems to fix everything. Eventually we should figure out what's going wrong and fix it "for real", but this should do for now. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 78ec9e28)
-
This puts us in line with what the DDX/DRI2 st are expecting. It also happens to work... no idea why, but seems better to have it work than to ask lots of questions. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 1fec05d1)
-
The spec doesn't require it. This fixes a crash on Android. v2: don't set any flags if ctx == NULL v3: add the spec note Cc: 10.6 11.0 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Albert Freeman <albertwdfreeman@gmail.com> Reviewed-by:
Frank Binns <frank.binns@imgtec.com> (cherry picked from commit 18123a73)
-
Not needed and it can be NULL. v2: fix dri2_get_fence_from_cl_event - thanks Albert Cc: 10.6 11.0 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Albert Freeman <albertwdfreeman@gmail.com> (cherry picked from commit b7833608)
-
As of version 15 of the EGL_KHR_create_context spec, debug contexts are allowed for ES contexts. We should allow creation instead of erroring. While we're here provide a more comprehensive checking for the other two flags - ROBUST_ACCESS_BIT_KHR and FORWARD_COMPATIBLE_BIT_KHR v2 [Emil Velikov] Rebase. Minor tweak in commit message. Cc: Boyan Ding <boyan.j.ding@gmail.com> Cc: Chad Versace <chad.versace@intel.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91044 Signed-off-by:
Matthew Waters <ystreet00@gmail.com> Signed-off-by:
Emil Velikov <emil.l.velikov@gmail.com> (cherry picked from commit 11cabc45)
-
This fixes a race condition in the glx-multithreaded-shader-compile test. v2: - Replace gallivm_init_llvm_{begin,end}() with gallivm_init_llvm_targets(). Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Mathias Fröhlich <Mathias.Froehlich@web.de> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> CC: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit a2e1e3d3)
-
Drivers and state trackers that use LLVM for generating code, must register the targets they use with LLVM's global TargetRegistry. The TargetRegistry is not thread-safe, so all targets must be added to the registry before it can be queried for target information. When drivers and state trackers initialize their own targets, they need a way to force gallivm to initialize its targets at the same time. Otherwise, there can be a race condition in some multi-threaded applications (e.g. glx-multihreaded-shader-compile in piglit), when one thread creates a context for a driver that uses LLVM (e.g. radeonsi) and another thread creates a gallivm context (glxContextCreate does this). The race happens when the driver thread initializes its LLVM targets and then starts using the registry before the gallivm thread has a chance to register its targets. This patch allows users to force gallivm to register its targets by calling the gallivm_init_llvm_targets() function. v2: - Use call_once and remove mutexes and static initializations. - Replace gallivm_init_llvm_{begin,end}() with gallivm_init_llvm_targets(). Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Mathias Fröhlich <Mathias.Froehlich@web.de> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> CC: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 76cfd6f1)
-
Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Mathias Fröhlich <Mathias.Froehlich@web.de> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> CC: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 3219b48a)
-
Add a macro GL_LIB_NAME to hold the filename that configure comes up with based on the --with-gl-lib-name and --enable-mangling options. In driOpenDriver, use the GL_LIB_NAME macro instead of hard-coding "libGL.so.1". v2: Add an #ifndef/#define for GL_LIB_NAME so that non-autoconf builds will work. v3: Fix the library filename in the Makefile. Signed-off-by:
Kyle Brenneman <kbrenneman@nvidia.com> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit d35391cf)
-
When USE_MGL_NAMESPACE is defined, _glapi_get_stub will check for the "m" prefix before trying to skip it, so that "glFoo" and "mglFoo" are equivalent. This should let it work with all the places where something calls _glapi_get_proc_offset with a hard-coded name that starts with the normal "gl" prefix. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55552 Signed-off-by:
Kyle Brenneman <kbrenneman@nvidia.com> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 798f260a)
-
Rearranged the GLX_ALIAS macro in glextensions.h so that it will pick up the renames from glx_mangle.h. Fixed the alias attribute for glXGetProcAddress when USE_MGL_NAMESPACE is defined. v2: Add a comment clarifying why GLX_ALIAS needs two macros. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55552 Signed-off-by:
Kyle Brenneman <kbrenneman@nvidia.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> Reviewed-by:
Emil Velikov <emil.l.velikov@gmail.com> (cherry picked from commit a27f2d99)
-
The result of POW for a negative base is undefined. Even when the result is multiplied by zero (which is the case here whenever the base is negative), the Inf and NaNs can propagate past that. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91342 Signed-off-by:
Daniel Scharrer <daniel@constexpr.org> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> Reviewed-by:
Ilia Mirkin <imirkin@alum.mit.edu> (cherry picked from commit b3f9c5cc)
-
The old code had some significant problems with respect to sampler2DArray textures. The biggest problem was that some of the code would use vec3 for the texture coordinate type, and other parts of the code would use vec2. The resulting shader would not even compile. Since there were not tests for this path, nobody noticed. The input to the fragment shader is always treated as a vec3. If the source data is only vec2, the vertex puller will supply 0 for the .z component. The texture coordinate passed to the fragment shader is always a vec2 that comes from the .xy part of the vertex shader input. The layer, taken from the .z of the vertex shader input is passed separately as a flat integer. If the generated fragment shader does not use the layer integer, the GLSL linker will eliminate all the dead code in the vertex shader. Fixes the new piglit tests "blit-scaled samples=2 with gl_texture_2d_multisample_array", etc. on i965. Note for stable maintainer: This patch may depend on 46037237, and that patch should be safe for stable. Signed-off-by:
Ian Romanick <ian.d.romanick@intel.com> Reviewed-by:
Anuj Phogat <anuj.phogat@gmail.com> Cc: Topi Pohjolainen <topi.pohjolainen@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 9bd9cf1f)
-
Bring over the following fix from i965: commit fb3d62fe Author: Kenneth Graunke <kenneth@whitecape.org> Date: Tue Aug 6 14:36:09 2013 -0700 i965: Remember to call intel_prepare_render() before blitting. Fixes a crash in the following piglit tests: bin/fbo-sys-blit -auto bin/fbo-sys-sub-blit -auto Signed-off-by:
Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by:
Ian Romanick <ian.d.romanick@intel.com> Cc: "11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit a1a3f096)
-
i915 fragment programs utilize the texture coordinate registers for both texture coordinates and varyings. Unfortunately the code doesn't check if the same index might be in use for both. It just naively uses the index to pick a texture unit, which could lead to collisions. Add an extra mapping step to allocate non conflicting texture units for both uses. The issue can be reproduced with a pair of simple shaders like these: attribute vec4 in_mod; varying vec4 mod; void main() { mod = in_mod; gl_TexCoord[0] = gl_MultiTexCoord0; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; } varying vec4 mod; uniform sampler2D tex; void main() { gl_FragColor = texture2D(tex, vec2(gl_TexCoord[0])) * mod; } Fixes many piglit tests on i915: glsl-link-varyings-2 glsl-orangebook-ch06-bump interpolation-none-gl_frontcolor-smooth-fixed interpolation-none-gl_frontcolor-smooth-none interpolation-none-gl_frontcolor-smooth-vertex interpolation-none-gl_frontsecondarycolor-smooth-fixed interpolation-none-gl_frontsecondarycolor-smooth-vertex interpolation-none-gl_frontsecondarycolor-smooth-none interpolation-none-other-flat-fixed interpolation-none-other-flat-none interpolation-none-other-flat-vertex interpolation-none-other-smooth-fixed interpolation-none-other-smooth-none interpolation-none-other-smooth-vertex v2 [idr]: Minor formatting tweaks. Signed-off-by:
Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by:
Ian Romanick <ian.d.romanick@intel.com> Cc: "11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit c349031c)
-
I830_UPLOAD_RASTER_RULES and I830_UPLOAD_TEX(0) are trying to occupy the same bit. Move the texture bits upwards a bit to make room for I830_UPLOAD_RASTER_RULES. Now the driver will actually upload the raster rules which is rather important to get the provoking vertex right. Fixes the appearance of glxgears teeth on gen2. Signed-off-by:
Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by:
Ian Romanick <ian.d.romanick@intel.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 9504740f)
-
For 8-bit RGB(A) texture formats we set the PIPE_BIND_RENDER_TARGET flag to try to get a hardware format which also supports rendering (for FBO textures). Do the same thing for floating point formats. This allows the Redway3D Flat demo to run. Cc: 10.6 11.0 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Reviewed-by:
Roland Scheidegger <sroland@vmware.com> (cherry picked from commit cb758b89)
-
The bo will often come from a slab in which case it doesn't matter. But for larger allocations this will be in its own bo, and we have to make sure to wait until it's no longer used in order for it to be freed. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org Tested-by:
Marcin Ślusarz <marcin.slusarz@gmail.com> (cherry picked from commit 1d8cba9b)
-
If there is an unflushed fence on the bo, then the resource may still be used in commands built up in the local pushbuf. Flushing can cause all sorts of unwanted effects, so just free the bo when the relevant fence is hit. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org Tested-by:
Marcin Ślusarz <marcin.slusarz@gmail.com> (cherry picked from commit 3a6b9a78)
-
Deleting a buffer does not flush the command stream. Make sure that we wait for the copies to finish before deleting the temporary bo. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org Tested-by:
Marcin Ślusarz <marcin.slusarz@gmail.com> (cherry picked from commit d4e650b0)
-
IVB and VLV hang sporadically when an untyped surface read or write message is used to access a surface of format other than RAW, as may happen when there is a mismatch between the format qualifier of the image uniform and the format of the actual image bound to the pipeline. According to the spec this condition gives undefined results but may not lead to program termination (which is one of the possible outcomes of the hang). Fix it by checking at runtime whether the surface is of the right type. Fixes the "arb_shader_image_load_store.invalid/format mismatch" piglit subtest. Reported-by:
Mark Janes <mark.a.janes@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91718 CC: mesa-stable@lists.freedesktop.org Reviewed-by:
Ian Romanick <ian.d.romanick@intel.com> (cherry picked from commit b6129229)
-
Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 99321421)
-
if app pass 0 as frame_rate_num, it should not be encoded to the VUI. Signed-off-by:
Leo Liu <leo.liu@amd.com> Reviewed-by:
Alex Deucher <alexander.deucher@amd.com> Reviewed-by:
Christian König <christian.koenig@amd.com> Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 1e97b418)
-
If the immutable compressed texture didn't have the full mip pyramid, this didn't work, because it tried to generate mip levels for non-existing levels. _mesa_prepare_mipmap_level() would correctly handle this by returning FALSE if the mip level didn't exist, however we actually created the non-existing mip level right before that because we used _mesa_get_tex_image() before calling _mesa_prepare_mipmap_level(). It would then proceed to crash (we allocated the mip level, which is a bad idea on an immutable texture, but didn't initialize the values, leading to assertion failures or segfaults). Fix this by using _mesa_select_tex_image() instead and call it after _mesa_prepare_mipmap_level(), as that function will allocate missing mip levels for non-immutable textures already. This fixes a (2 year old) crash with astromenace which was hack-fixed in ubuntu packages instead: http://bugs.debian.org/718680 (I guess most apps do full mip chains - I believe this app not doing it is actually unintentional, always one level less than full mip chain...). Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org> Reviewed-by:
Brian Paul <brianp@vmware.com> (cherry picked from commit 19604d30)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 7bbce21e)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit ae418a7b)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit b737d9c1)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit d556346b)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 1f99b0be)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 237d7ccc)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 9b6d9dd7)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 5dbadb02)
-
Cc: 11.0 <mesa-stable@lists.freedesktop.org> Acked-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> (cherry picked from commit 263f5a2c) [Emil Velikov: Track gs_rings over gsvs_ring. NULL check/FREE gs_rings.] Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Conflicts: src/gallium/drivers/radeonsi/si_state_shaders.c
-