summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Revert "glx/dri3: Request non-vsynced Present for swapinterval zero. (v3)"Emil Velikov2014-12-301-13/+1
| | | | | | | | This reverts commit d332e5046e3b8cd92a819f2d9c9ca976f0f4eb0c. May not be the correct fix. Discussion is ongoing. http://lists.freedesktop.org/archives/mesa-dev/2014-December/072969.html
* linker: Assign varying locations geometry shader inputs for SSOIan Romanick2014-12-211-0/+15
| | | | | | | | | | | | Previously only geometry shader outputs would be assigned locations if the geometry shader was the only stage in the linked program. Signed-off-by: Ian Romanick <[email protected]> Cc: [email protected] Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82585 Reviewed-by: Jordan Justen <[email protected]> (cherry picked from commit a909b995d95892798a189818454905fdefd4bc9b) Nominated-by: Ian Romanick <[email protected]>
* linker: Wrap access of producer_var with a NULL checkIan Romanick2014-12-211-3/+5
| | | | | | | | | | | | | | producer_var could be NULL if consumer_var is not NULL and consumer_is_fs is false. This will occur when the producer is NULL and the consumer is the geometry shader for a program that contains only a geometry shader. This will occur starting with the next patch. Signed-off-by: Ian Romanick <[email protected]> Cc: [email protected] Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82585 Reviewed-by: Jordan Justen <[email protected]> (cherry picked from commit 5eca78a00a5de442aaf541a1095d5cfa6b4f45de) Nominated-by: Ian Romanick <[email protected]>
* glsl: Add gl_MaxViewports to available builtin constantsMaxence Le Doré2014-12-213-0/+10
| | | | | | | | | It seems to have been forgotten during viewports array implementation time. Cc: "10.4 10.3" <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Matt Turner <[email protected]> (cherry picked from commit 19e05d68986690cfcdd49de6cfb87d88ad54cd58)
* i965/brw_reg: struct constructor now needs explicit negate and abs values.Andres Gomez2014-12-213-2/+28
| | | | | | | | | | | | | | | | | | | | We were assuming, when constructing a new brw_reg struct, that the negate and abs register modifiers would not be present by default in the new register. Now, we force explicitly setting these values when constructing a new register. This will avoid problems like forgetting to properly set them when we are using a previous register to generate this new register, as it was happening in the dFdx and dFdy generation functions. Fixes piglit test shaders/glsl-deriv-varyings Cc: "10.4 10.3" <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82991 Reviewed-by: Matt Turner <[email protected]> (cherry picked from commit 8517e665bc4c378e8e7523827090fd1b06abaecd)
* glx/dri3: Don't fail on glXSwapBuffersMscOML(dpy, window, 0, 0, 0) (v2)Mario Kleiner2014-12-141-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | glXSwapBuffersMscOML() with target_msc=divisor=remainder=0 gets translated into target_msc=divisor=0 but remainder=1 by the mesa api. This is done for server DRI2 where there needs to be a way to tell the server-side DRI2ScheduleSwap implementation if a call to glXSwapBuffers() or glXSwapBuffersMscOML(dpy,window,0,0,0) was done. remainder = 1 was (ab)used as a flag to tell the server to select proper semantic. The DRI3/Present backend ignored this signalling, treated any target_msc=0 as glXSwapBuffers() request, and called xcb_present_pixmap with invalid divisor=0, remainder=1 combo. The present extension responded kindly to this with a BadValue error and dropped the request, but mesa's DRI3/Present backend doesn't check for error codes. From there on stuff went downhill quickly for the calling OpenGL client... This patch fixes the problem. v2: Change comments to be more clear, with reference to relevant spec, as suggested by Eric Anholt. Cc: "10.3 10.4" <[email protected]> Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Eric Anholt <[email protected]> (cherry picked from commit 0d7f4c8658e00d30a1b0c3f2d803378eaa0717c7)
* glx/dri3: Request non-vsynced Present for swapinterval zero. (v3)Mario Kleiner2014-12-141-1/+13
| | | | | | | | | | | | | | | | | | | | | | | Restores proper immediate tearing swap behaviour for OpenGL bufferswap under DRI3/Present. Cc: "10.3 10.4" <[email protected]> v2: Add Frank Binns signed off by for his original earlier patch from April 2014, which is identical to this one, and Chris Wilsons reviewed tag from May 2014 for that patch, ergo also for this one. v3: Incorporate comment about triple buffering as suggested by Axel Davy, and reference to relevant spec provided by Eric Anholt. Signed-off-by: Frank Binns <[email protected]> Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Chris Wilson <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Eric Anholt <[email protected]> (cherry picked from commit 455d3036fab2c5da7e589644f12435fb104a69fc)
* glx/dri3: Track separate (ust, msc) for PresentPixmap vs. PresentNotifyMsc (v2)Mario Kleiner2014-12-142-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent calls to glXGetSyncValuesOML() and glXWaitForMscOML() from overwriting the (ust,msc) values of the last successfull swapbuffers call (PresentPixmapCompleteNotify event), as glXWaitForSbcOML() relies on those values corresponding to the most recent completed swap, not to whatever was last returned from the server. Problematic call sequence without this patch would have been, e.g., glXSwapBuffers() ... wait ... swap completes -> PresentPixmapComplete event -> (ust,msc) updated to reflect swap completion time and count. ... wait for at least 1 video refresh cycle/vblank increment. glXGetSyncValuesOML() -> PresentNotifyMsc event overwrites (ust,msc) of swap completion with (ust,msc) of most recent vblank glXWaitForSbcOML() -> Returns sbc of last completed swap but (ust,msc) of last completed vblank, not of last completed swap. -> Client is confused. Do this by tracking a separate set of (ust, msc) for the dri3_wait_for_msc() call than for the dri3_wait_for_sbc() call. This makes the glXWaitForSbcOML() call robust again and restores consistent behaviour with the DRI2 implementation. Fixes applications originally written and tested against DRI2 which also rely on this not regressing under DRI3/Present, e.g., Neuro-Science software like Psychtoolbox-3. This patch fixes the problem. v2: Rename vblank_msc/ust to notify_msc/ust as suggested by Axel Davy for better clarity. Cc: "10.3 10.4" <[email protected]> Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Axel Davy <[email protected]> (cherry picked from commit ad8b0e8bf68850a57daba0b47629ca14807ea3ad) Conflicts: src/glx/dri3_glx.c
* glx/dri3: Fix glXWaitForSbcOML() to handle targetSBC==0 correctly. (v2)Mario Kleiner2014-12-141-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | targetSBC == 0 is a special case, which asks the function to block until all pending OpenGL bufferswap requests have completed. Currently the function just falls through for targetSBC == 0, returning bogus results. This breaks applications originally written and tested against DRI2 which also rely on this not regressing under DRI3/Present, e.g., Neuro-Science software like Psychtoolbox-3. This patch fixes the problem. v2: Simplify as suggested by Axel Davy. Add comments proposed by Eric Anholt. Cc: "10.3 10.4" <[email protected]> Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Eric Anholt <[email protected]> (cherry picked from commit 8cab54de16f4691672533967daa79c9cfa2e24cc)
* util/primconvert: Avoid point arithmetic; apply offset on all cases.José Fonseca2014-12-111-1/+2
| | | | | | | Matches what u_vbuf_get_minmax_index() does. Reviewed-by: Ilia Mirkin <[email protected]> (cherry picked from commit f9098f09720d9b751e8529b2648971ee7d576b37)
* r600g: only init GS_VERT_ITEMSIZE on r600Dave Airlie2014-12-111-5/+2
| | | | | | | | | | | | | On evergreen there are 4 regs, on r600/700 there is only one. Don't initialise regs and trash someone elses state. Not sure this fixes anything, but hey one less stupid. Reviewed-By: Glenn Kennard <[email protected]> Cc: "10.3 10.4" [email protected] Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit 7f21cf71989ba780639594ebb34d6e7345b08436)
* radeonsi: Program RASTER_CONFIG for harvested GPUs v5Tom Stellard2014-12-114-6/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Harvested GPUs have some of their render backends disabled, so in order to prevent the hardware from trying to render things with these disabled backends we need to correctly program the PA_SC_RASTER_CONFIG register. v2: - Write RASTER_CONFIG for all SEs. v3: - Set GRBM_GFX_INDEX.INSTANCE_BROADCAST_WRITES bit. - Set GRBM_GFX_INFEX.SH_BROADCAST_WRITES bit when done setting PA_SC_RASTER_CONFIG. - Get num_se and num_sh_per_se from kernel. v4: - Get correct value for num_se - Remove loop for setting PA_SC_RASTER_CONFIG - Only compute raster config when a backend has been disabled. v5: Michel Dänzer - Fix computation for chips with multiple SEs https://bugs.freedesktop.org/show_bug.cgi?id=60879 CC: "10.4 10.3" <[email protected]> (cherry picked from commit 67dcbcd92cb9877a04747d6cf7fef14c2b8af8b3)
* i965/gs: Avoid DW * DW mulBen Widawsky2014-12-111-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | The GS has an interesting use for mul. Because the GS can emit multiple vertices per input vertex, and it also has a unique count at the top of the URB payload, the GS unit needs to be able to dynamically specify URB write offsets (relative to the global offset). The documentation in the function has a very good explanation from Paul on the mechanics. This fixes around 2000 piglit tests on BSW. v2: Reworded commit message (Ben) no mention of CHV (Matt) Change SHRT_MAX to USHRT_MAX (Ken, and Matt) Update comment in code to reflect the use of UW (Ben) Add Gen7+ assertion for the relevant GS code, since it won't work on Gen6- (Ken) Drop the bogus hunk in emit_control_data_bits() (Ken) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84777 (with many dupes) Cc: "10.4 10.3 10.2" <[email protected]> Signed-off-by: Ben Widawsky <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]> (cherry picked from commit f13870db09d7a10141b5ffc24058bb2abceaa035)
* util/primconvert: take ib offset into accountIlia Mirkin2014-12-111-1/+1
| | | | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.4 10.3" <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Rob Clark <[email protected]> (cherry picked from commit c3bed13604fdcd50324f3535ef38d25f1e08245d)
* util/primconvert: support instanced renderingIlia Mirkin2014-12-111-0/+2
| | | | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.3 10.4" <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Rob Clark <[email protected]> (cherry picked from commit fb434e675f4d9e6685eefd11135ff8630b25ed6b)
* util/primconvert: pass index bias throughIlia Mirkin2014-12-111-0/+1
| | | | | | | | | | | The index_bias (aka base_vertex) applies to the downstream draw just as much, since the actual index values are never modified. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.3 10.4" <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Rob Clark <[email protected]> (cherry picked from commit 1dfa0391689d71a379cc47a7f39b5f8b0318f891)
* mesa: fix height error check for 1D array texturesBrian Paul2014-12-031-1/+1
| | | | | | | | | height=0 is legal for 1D array textures (as depth=0 is legal for 2D arrays). Fixes new piglit ext_texture_array-errors test. Cc: "10.3 10.4" <[email protected]> Reviewed-by: José Fonseca <[email protected]> (cherry picked from commit 4e6244e80f7dd6dad526ff04f5103ed24d61d38a)
* mesa: fix arithmetic error in _mesa_compute_compressed_pixelstore()Brian Paul2014-12-031-1/+1
| | | | | | | | | We need parenthesis around the expression which computes the number of blocks per row. Reviewed-by: Matt Turner <[email protected]> Cc: "10.3 10.4" <[email protected]> (cherry picked from commit 991d5cf8ce5c7842801fdb0378bf5aca5a59cc4c)
* freedreno/ir3: fix UMADIlia Mirkin2014-12-031-9/+9
| | | | | | | | | Looks like none of the mad variants do u16 * u16 + u32, so just add in the extra value "by hand". Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.3 10.4" <[email protected]> (cherry picked from commit de83ef677f6d845e63f9e5e790d3078372f752df)
* freedreno/a3xx: only enable blend clamp for non-float formatsIlia Mirkin2014-12-032-4/+7
| | | | | | | | | This fixes arb_color_buffer_float-render GL_RGBA16F. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.3 10.4" <[email protected]> Reviewed-by: Rob Clark <[email protected]> (cherry picked from commit 3de9fa8ff47bd6b186f9d57511cb9fe08618f62f)
* freedreno/ir3: don't pass consts to madsh.m16 in MOD logicIlia Mirkin2014-11-281-0/+3
| | | | | | | | | madsh.m16 can't handle a const in src1, make sure to unconst it Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Rob Clark <[email protected]> Cc: "10.3 10.4" <[email protected]> (cherry picked from commit 37fe347542aad40aac5be9066c21f65f55d0f48c)
* mesa: Fix Get(GL_TRANSPOSE_CURRENT_MATRIX_ARB) to transposeChris Forbes2014-11-261-1/+1
| | | | | | | | | | This was just returning the same value as GL_CURRENT_MATRIX_ARB. Spotted while investigating something else in apitrace. Signed-off-by: Chris Forbes <[email protected]> Cc: "10.3 10.4" <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> (cherry picked from commit 2b4fe85f0ea613463b8bba3149183eca97e98e75)
* i965: Handle nested uniform array indexingChris Forbes2014-11-261-33/+38
| | | | | | | | | | | | | | | | | | | | | | | When converting a uniform array reference to a pull constant load, the `reladdr` expression itself may have its own `reladdr`, arbitrarily deeply. This arises from expressions like: a[b[x]] where a, b are uniform arrays (or lowered const arrays), and x is not a constant. Just iterate the lowering to pull constants until we stop seeing these nested. For most shaders, there will be only one pass through this loop. Fixes the piglit test: tests/spec/glsl-1.20/linker/double-indirect-1.shader_test Signed-off-by: Chris Forbes <[email protected]> Cc: "10.3 10.4" <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> (cherry picked from commit adefccd12a534f0deac7b78db73693fe1dcef2ec) Conflicts: src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
* nv50,nvc0: buffer resources can be bound as other things down the lineIlia Mirkin2014-11-242-14/+14
| | | | | | | | | | res->bind is not an indicator of how the resource is currently bound. buffers can be rebound across different binding points without changing underlying storage. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.4 10.3" <[email protected]> (cherry picked from commit fecae4625cf9a132bb3fbfeaadbbf3db68be6024)
* nv50,nvc0: actually check constbufs for invalidationIlia Mirkin2014-11-242-3/+6
| | | | | | | | | The number of vertex buffers has nothing to do with the number of bound constbufs. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.4 10.3" <[email protected]> (cherry picked from commit e80a0a7d9a02fe12dedfb2e221358af620759c28)
* nv50/ir: set neg modifiers on min/max argsIlia Mirkin2014-11-241-0/+2
| | | | | | | Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=86618 Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.4 10.3" <[email protected]> (cherry picked from commit 7d07083cfdff4bdbeca9ac36c2127cb6a26be207)
* i965: Fix segfault in WebGL Conformance on IvybridgeChad Versace2014-11-191-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes regression of WebGL Conformance test texture-size-limit [1] on Ivybridge Mobile GT2 0x0166 with Google Chrome R38. Regression introduced by commit 6c044231535b93c5d16404528946cad618d96bd9 Author: Kenneth Graunke <[email protected]> Date: Sun Feb 2 02:58:42 2014 -0800 i965: Bump GL_MAX_CUBE_MAP_TEXTURE_SIZE to 8192. The test regressed because the pointer offset arithmetic in intel_miptree_map_gtt() overflows for large textures. The pointer arithmetic is not 64-bit safe. [1] https://github.com/KhronosGroup/WebGL/blob/52f0dc240f04dce31b1b8e2b8107fe2b8332dc90/sdk/tests/conformance/textures/texture-size-limit.html Cc: "10.3 10.4" <[email protected]> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=78770 Fixes: Intel CHRMOS-1377 Reported-by: Lu Hua <[email protected]> Reviewed-by: Ian Romanic <[email protected]> Signed-off-by: Chad Versace <[email protected]> (cherry picked from commit b69c7c5dac4e2615e89cef773173484421830a8f)
* r600g: limit texture offset application to specific types (v2)Dave Airlie2014-11-191-3/+18
| | | | | | | | | | | | | | | | | | | | | | | For 1D and 2D arrays we don't want the other coordinates being offset and affecting where we sample. I wrote this patch 6 months ago but lost it. Fixes: ./bin/tex-miplevel-selection textureLodOffset 1DArray ./bin/tex-miplevel-selection textureLodOffset 2DArray ./bin/tex-miplevel-selection textureOffset 1DArray ./bin/tex-miplevel-selection textureOffset 1DArrayShadow ./bin/tex-miplevel-selection textureOffset 2DArray ./bin/tex-miplevel-selection textureOffset(bias) 1DArray ./bin/tex-miplevel-selection textureOffset(bias) 2DArray v2: rewrite to handle more cases and be consistent with code above. Reviewed-by: Glenn Kennard <[email protected]> Cc: "10.3 10.4" <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit 1830138cc04a2948b4cbc24b04faac3f6e195992)
* r600g: geom shaders: always load texture src regs from inputsDave Airlie2014-11-191-1/+2
| | | | | | | | | | | | Otherwise we seem to lose the split_gs_inputs and try and pull from an uninitialised register. fixes 9 texelFetch geom shader tests. Reviewed-by: Glenn Kennard <[email protected]> Cc: "10.3 10.4" <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit d4c342f67e128dd9c17e8ae48a44677baf546295)
* st/mesa: add a fallback for clear_with_quad when no vs_layerIlia Mirkin2014-11-194-5/+97
| | | | | | | | | | | | | | | | | | Not all drivers can set gl_Layer from VS. Add a fallback that passes the instance id from VS to GS, and then uses the GS to set the layer. Tested by adding quad_buffers |= clear_buffers; clear_buffers = 0; to the st_Clear logic, and forcing set_vertex_shader_layered in all cases. No piglit regressions (on piglits with 'clear' in the name). Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Cc: "10.4 10.3" <[email protected]> (cherry picked from commit 68db29c434e144891e5990b032b44495de52f6eb)
* r600g/cayman: handle empty vertex shadersDave Airlie2014-11-191-4/+8
| | | | | | | | | | | | | | | Some of the geom shader tests produce an empty vertex shader, on cayman we'd crash in the finaliser because last_cf was NULL. cayman doesn't need the NOP workaround, so if the code arrives here with no last_cf, just emit an END. fixes crashes in a bunch of piglit geom shader tests. Cc: "10.3 10.4" <[email protected]> Reviewed-by: Glenn Kennard <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit 4e520101e6a0b4fcd930323c32d1a8a6348c8417)
* r600g/cayman: fix texture gather testsDave Airlie2014-11-191-4/+11
| | | | | | | | | | | It appears on cayman the TG4 outputs were reordered. This fixes a lot of piglit tests. Cc: "10.3 10.4" <[email protected]> Reviewed-by: Glenn Kennard <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit 27e1e0e7108511b43d0f56f678c7201f39e2acc5)
* r600g/cayman: fix integer multiplication output overwrite (v2)Dave Airlie2014-11-191-3/+23
| | | | | | | | | | | | This fixes tests/spec/glsl-1.10/execution/fs-op-assign-mult-ivec2-ivec2-overwrite.shader_test. hopeful fix for fd.o bug 85376 Reported-by: ghallberg Cc: "10.3 10.4" <[email protected]> Reviewed-by: Glenn Kennard <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit 4a128d5a16a575faaac969468a3aaafce48504cf)
* st/mesa: copy sampler_array_size field when copying instructionsBrian Paul2014-11-191-1/+6
| | | | | | | | | | | | | | | | | | | The sampler_array_size field was added by "mesa/st: add support for dynamic sampler offsets". But the field wasn't getting copied in the get_pixel_transfer_visitor() or get_bitmap_visitor() functions. The count_resources() function then didn't properly compute the glsl_to_tgsi_visitor::samplers_used bitmask. Then, we didn't declare all the sampler registers in st_translate_program(). Finally, we asserted when we tried to emit a tgsi ureg src register with File = TGSI_FILE_UNDEFINED. Add the missing assignments and some new assertions to catch the invalid register sooner. Cc: "10.3, 10.4" <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> (cherry picked from commit 11abd7b2bc49455bb8c5b2f9e60f92d4284ae6c2)
* radeonsi: Disable asynchronous DMA except for PIPE_BUFFERMichel Dänzer2014-11-191-0/+15
| | | | | | | | | | | | | | | | | | Using the asynchronous DMA engine for multi-dimensional operations seems to cause random GPU lockups for various people. While the root cause for this might need to be fixed in the kernel, let's disable it for now. Before re-enabling this, please make sure you can hit all newly enabled paths in your testing, preferably with both piglit and real world apps, and get in touch with people on the bug reports below for stability testing. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85647 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83500 Cc: "10.3 10.4" <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Grigori Goronzy <[email protected]> (cherry picked from commit ae4536b4f71cbe76230ea7edc7eb4d6041e651b4)
* i915g: we also have more than 0 viewports!Kenneth Graunke2014-11-161-0/+3
| | | | | | | | | | See 546d6c8d for the corresponding fix in freedreno. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Stephane Marchesin <[email protected]> Cc: "10.3" <[email protected]> (cherry picked from commit 2b6e703863f7e5469ba8d82003282cc42f277d5e)
* llvmpipe: Avoid deadlock when unloading opengl32.dllJosé Fonseca2014-11-161-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Windows, DllMain calls and thread creation/destruction are serialized, so when llvmpipe is destroyed from DllMain waiting for the rasterizer threads to finish will deadlock. So, instead of waiting for rasterizer threads to have finished, simply wait for the rasterizer threads to notify they are just about to finish. Verified with this very simple program: #include <windows.h> int main() { HMODULE hModule = LoadLibraryA("opengl32.dll"); FreeLibrary(hModule); } Fixes https://bugs.freedesktop.org/show_bug.cgi?id=76252 Reviewed-by: Roland Scheidegger <[email protected]> Cc: 10.2 10.3 <[email protected]> (cherry picked from commit 706ad3b649e6a75fdac9dc9acc3caa9e6067b853) Squashed together with: llvmpipe: Call pipe_thread_wait() on Linux. To address http://lists.freedesktop.org/archives/mesa-dev/2014-November/070569.html In short, revert 706ad3b649e6a75fdac9dc9acc3caa9e6067b853 for non-Windows OSes. (cherry picked from commit d5b1731178378b3d828c74368f6bfe85edc10618)
* mesa: fix UNCLAMPED_FLOAT_TO_UBYTE() macro for MSVCBrian Paul2014-11-061-4/+4
| | | | | | | | | | | | | MSVC replaces the "F" in "255.0F" with the macro argument which leads to an error. s/F/FLT/ to avoid that. It turns out we weren't using this macro at all on MSVC until the recent "mesa: Drop USE_IEEE define." change. Reviewed-by: Roland Scheidegger <[email protected]> (cherry picked from commit 9608193cbc6ea14e49adcd0193f9e7c6058d5a2f) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85918 Nominated-by: Roland Scheidegger <[email protected]>
* r300g: remove enabled/disabled hyperz and AA compression messagesMarek Olšák2014-11-061-2/+0
| | | | | | | It's annoying with octave. Reported by Michael Burian. Cc: 10.2 10.3 <[email protected]> (cherry picked from commit f058c6bbd1674bbbe1e1ef5f6f14b95307ec6312)
* radeon/llvm: Dynamically allocate branch/loop stack arraysMichel Dänzer2014-10-292-6/+37
| | | | | | | | | | | | This prevents us from silently overflowing the stack arrays, and allows arbitrary stack depths. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85454 Cc: [email protected] Reported-and-Tested-by: Nick Sarnie <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 402ab50bedf9fba7654e63a6f2e808714714284d)
* Revert "st/mesa: set MaxUnrollIterations = 255"Marek Olšák2014-10-291-2/+1
| | | | | | | | | | | | | | | | | | | This reverts commit 20836c81851e0df29a8ee9c86e5e5388738c840b. 255 is a huge number. If you have a loop with 255 iterations, unrolling it will exceed the SM3 instruction limit. Let's use the default again. The comment about a SM3 limit doesn't make sense. For SM3, we generally want 32 (default) or a lower number due to the SM3 instruction limit, which is 512 instructions. For SM4, we can try higher numbers if needed, but some shaders can end up being pretty huge and shader compilation can take more time. This fixes a shader compile failure on R500/SM3. Reported on IRC. Cc: 10.2 10.3 <[email protected]> Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit 6fcb5520b78cdf1e5013c125501932315a069955)
* radeonsi: fix incorrect index buffer max size for lowered 8-bit indicesMarek Olšák2014-10-291-1/+1
| | | | | | Cc: 10.2 10.3 [email protected] Reviewed-by: Michel Dänzer <[email protected]> (cherry picked from commit e05259b63745533231d7094967e7e1066a0e0851)
* radeonsi: fix polygon mode for points and lines and point/line fill modesMarek Olšák2014-10-291-3/+3
| | | | | | | | Fixes piglit/polygon-mode-offset. Cc: 10.2 10.3 [email protected] Reviewed-by: Michel Dänzer <[email protected]> (cherry picked from commit 72424061e0722a1444b62af4cdbf03aaaf7e5ee0)
* r600g: fix polygon mode for points and lines and point/line fill modesMarek Olšák2014-10-292-6/+6
| | | | | | | | Fixes piglit/polygon-mode-offset. Cc: 10.2 10.3 [email protected] Reviewed-by: Michel Dänzer <[email protected]> (cherry picked from commit dab177ea997b42ab93c9fe51bc16507bbbc27e34)
* gallium/nouveau: fully build the driver under androidMauro Rossi2014-10-291-1/+1
| | | | | | | Fix the trivial typo in the variable name. Cc: "10.2 10.3" <[email protected]> (cherry picked from commit 417b17378ae9a8c590b01f3432fa1542a0f042d7)
* glsl: Use signed array index in update_max_array_access()Anuj Phogat2014-10-291-3/+3
| | | | | | | | | | | | | Avoids a crash in case of negative array index is used in a shader program. Cc: <[email protected]> Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Chris Forbes <[email protected]> (cherry picked from commit 7a652c41b4de4bdbb954a4ebf6cdb605d197e999) Conflicts: src/glsl/ast_array_index.cpp
* glsl: Fix crash due to negative array indexAnuj Phogat2014-10-291-1/+1
| | | | | | | | | | | | | | | | | Currently Mesa crashes with a shader like this: [fragmnet shader] float[5] array; int idx = -2; void main() { gl_FragColor = vec4(0.0, 1.0, 0.0, array[idx]); } Cc: <[email protected]> Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Chris Forbes <[email protected]> (cherry picked from commit 6f0089e92e9a3b096b978bb09a87db6a38acb7b2)
* mesa: check that uniform exists in glUniform* functionsTapani Pälli2014-10-291-8/+8
| | | | | | | | | | | | | | Remap table for uniforms may contain empty entries when using explicit uniform locations. If no active/inactive variable exists with given location, remap table contains NULL. v2: move remap table bounds check before existence check (Ian Romanick) Signed-off-by: Tapani Pälli <[email protected]> Tested-by: Erik Faye-Lund <[email protected]> (v1) Reviewed-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83574 (cherry picked from commit 9bd139e4515172d98e91d6ed7364ec3ea5cf623d)
* glsl: fix uniform location count used for glsl typesTapani Pälli2014-10-292-9/+12
| | | | | | | | | | Patch fixes the slot count used by vector types and adds 1 slot to be used by image and sampler types. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Francisco Jerez <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82921 (cherry picked from commit 1cb81d3a9b65781802f641fb3e4435edfed7f14a)
* freedreno/a3xx: fix depth/stencil restore formatRob Clark2014-10-291-1/+5
| | | | | | | Also fix z16 restore format which was completely wrong. Signed-off-by: Rob Clark <[email protected]> (cherry picked from commit 36310d9d56510ef50318bbb370f6c3d27ba09ebd)