aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* radeonsi: mark all bound shader buffer ranges as initializedMarek Olšák2017-03-161-0/+3
| | | | | | | | | This should prevent cases when a buffer was incorrectly mapped without synchronization just because this wasn't done. Cc: 13.0 17.0 <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 71a2e4e9452a6890197f8b629b2d8359bdd58913)
* nvc0: take extra pushbuf space into account for pushbuf_space callsIlia Mirkin2017-03-161-2/+2
| | | | | | | | | | | | | | | | | | See detailed explanation of why this is needed in commit eb60a89bc3a. This spot was missed/overlooked. Basically as a result of the fact that BEGIN_* ends up calling PUSH_SPACE, which in turn adds an extra 8 to the requested amount, we have to be mindful of that when doing bare nouveau_pushbuf_space calls. Reportedly this fixes some crashes when replaying a hitman trace taken on radeonsi. Fixes: eb60a89bc3a ("nouveau: take extra push space into account for pushbuf_space calls") Cc: "13.0 17.0" <[email protected]> Reported-by: Karol Herbst <[email protected]> Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 8e6d67685e10b001e07f92a7a6aaff4fe987b6f2)
* gallium/u_queue: set num_threads correctly if not all threads startGrazvydas Ignotas2017-03-011-1/+1
| | | | | | | | | | If i-th thread could not be created it means we have i threads, not i+1, because we start from 0. Fixes: 404d0d5 "gallium/u_queue: add an option to have multiple worker threads" Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Marek Olšák <[email protected]> (cherry picked from commit 7f268cf12b39d1de8ff38cf5beea50298cf841c2)
* gallium/u_queue: fix a crash with atexit handlersGrazvydas Ignotas2017-03-011-0/+1
| | | | | | | | | | | | | | | | | Commit 4aea8fe ("gallium/u_queue: fix random crashes when the app calls exit()") added a atexit handler which calls util_queue_killall_and_wait() for each queue to stop the threads. However the app is also free to use atexit handlers to clean up things, leading to util_queue_destroy() call which will also call util_queue_killall_and_wait() for the same queue again, causing threads being joined twice, and that is undefined. This happens with libglut, for example. A simple fix is to just set num_threads to 0 as there are no more valid threads after util_queue_killall_and_wait() returns. Fixes: 4aea8fe "gallium/u_queue: fix random crashes when the app calls exit()" Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Marek Olšák <[email protected]> (cherry picked from commit 993612193575f5f218af52c4ed7525e15083548e)
* radeonsi: fix broken tessellation on Carrizo and StoneyMarek Olšák2017-03-011-1/+3
| | | | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99850 Cc: 13.0 17.0 <[email protected]> Reviewed-by: Alex Deucher <[email protected]> (cherry picked from commit 35915af6c9ab4bdc0f1f8584ca346602405bd7e4)
* r300g: only allow byteswapped formats on big endianGrazvydas Ignotas2017-03-011-0/+5
| | | | | | | | | | They cause regressions on little endian. Fixes: 172bfdaa9e ("r300g: add support for PIPE_FORMAT_x8R8G8B8_*") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98869 Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Marek Olšák <[email protected]> (cherry picked from commit 66d1cb587ac7b24fb04f26d30e686c3991fc8885)
* android: radeonsi: fix sid_table.h generated header include pathMauro Rossi2017-03-011-1/+3
| | | | | | | | | | | | | | | | | generated-sources-dir-for macro replaces intermediates-dir-for and LOCAL_MODULE_CLASS is defined as required by new macro, in order to avoid the following building error: external/mesa/src/gallium/drivers/radeonsi/si_debug.c:29:10: fatal error: 'sid_tables.h' file not found ^ 1 error generated. Fixes: 730574c58e8 ("android: ac/debug: move sid_tables.h generation and IB decode to amd/common") Acked-by: Nicolai Hähnle <[email protected]> Acked-by: Emil Velikov <[email protected]> (cherry picked from commit 933988901ab14b3c950272b60a56cb48265076b0)
* gallium/u_queue: fix random crashes when the app calls exit()Marek Olšák2017-03-012-2/+78
| | | | | | | | | | | | | This fixes: vdpauinfo: ../lib/CodeGen/TargetPassConfig.cpp:579: virtual void llvm::TargetPassConfig::addMachinePasses(): Assertion `TPI && IPI && "Pass ID not registered!"' failed. v2: use list_head, switch the call order in destroy Cc: 13.0 17.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 4aea8fe7e01f2b65ffad3982687f90c8fa941524)
* etnaviv: remove number of pixel pipes validationChristian Gmeiner2017-03-011-10/+0
| | | | | | | | | | | | | | This validation was added before the etnaviv drm driver landed in the linux kernel. Due some pre-merge API changes we had to fix-up this value but with a mainline kernel this is not a problem anymore. Lets remove that validation which also gets rid of problem caught by Coverity, reported to me by imirkin. Cc: "17.0" <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit e8d600710cf7c1a646a36947ee7752c89860bf11)
* etnaviv: move pctx initialisation to avoid a null dereferenceChristian Gmeiner2017-03-011-5/+5
| | | | | | | | | | | | In case ctx->stream == NULL the fail label gets executed where pctx gets dereferenced - too bad pctx is NULL in that case. Caught by Coverity, reported to me by imirkin. Cc: "17.0" <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit a0b16a08905d68da07668a42eeb464b4f30bf3e5)
* radeonsi: fix UINT/SINT clamping for 10-bit formats on <= CIKNicolai Hähnle2017-03-016-19/+43
| | | | | | | | | | | The same PS epilog workaround as for 8-bit integer formats is required, since the CB doesn't do clamping. Fixes GL45-CTS.gtf32.GL3Tests.packed_pixels.packed_pixels*. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 066a117be77fdc2b29c8eafabb4e2c2fa902a18e)
* radeonsi: handle MultiDrawIndirect in si_get_draw_start_countNicolai Hähnle2017-03-011-7/+53
| | | | | | | | | | | | | | | | | | | | | | Also handle the GL_ARB_indirect_parameters case where the count itself is in a buffer. Use transfers rather than mapping the buffers directly. This anticipates the possibility that the buffers are sparse (once ARB_sparse_buffer is implemented), in which case they cannot be mapped directly. Fixes GL45-CTS.gtf43.GL3Tests.multi_draw_indirect.multi_draw_indirect_type on <= CIK. v2: - unmap the indirect buffer correctly - handle the corner case where we have indirect draws, but all of them have count 0. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> Acked-by: Edward O'Callaghan <[email protected]> (cherry picked from commit 6a1d9684f4ec1e1eed49bc14749be7b7784277ec)
* gallivm: Override getHostCPUName() "generic" w/ "pwr8" (v4)Ben Crocker2017-03-011-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | If llvm::sys::getHostCPUName() returns "generic", override it with "pwr8" (on PPC64LE). This is a work-around for a bug in LLVM: a table entry for "POWER8NVL" is missing, resulting in (big-endian) "generic" being returned on little-endian Power8NVL systems. The result is that code that attempts to load the least significant 32 bits of a 64-bit quantity in memory loads the wrong half. This omission should be fixed in the next version of LLVM (4.0), but this work-around should be left in place in case some future version of POWER<n> also ends up unrepresented in LLVM's table. This workaround fixes failures in the Piglit arb_gpu_shader_fp64 conversion tests on POWER8NVL processors. (V4: add similar comment in the code.) Signed-off-by: Ben Crocker <[email protected]> Cc: 12.0 13.0 17.0 <[email protected]> Acked-by: Emil Velikov <[email protected]> (cherry picked from commit b934aae36410e09892e772b26f61fed5d037fc69)
* gallivm: Improve debug output (V2)Ben Crocker2017-03-012-1/+18
| | | | | | | | | | | | | | | | | Improve debug output from gallivm_compile_module and lp_build_create_jit_compiler_for_module, printing the -mcpu and -mattr options passed to LLC. V2: enclose MAttrs debug_printf block and llc -mcpu debug_printf in "if (gallivm_debug & <flags>)..." Signed-off-by: Ben Crocker <[email protected]> Cc: 12.0 13.0 17.0 <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> (v2) [Emil Velikov: rebase] Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit a8e9c630f3dc656d107c4252b90c8e991438a3c4)
* winsys/amdgpu: reduce max_alloc_size based on GTT limitsNicolai Hähnle2017-03-011-2/+4
| | | | | | | | | | | | | | | | | | Allocating huge buffers in VRAM is not a problem, but when those buffers start being migrated, the kernel runs into errors because it cannot split those buffer up for moving through GTT. This should fix intermittent failures of GL45-CTS.texture_buffer.texture_buffer_max_size Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 550125e1e73e2441989da11495057a20dd9dad44) [Emil Velikov: resolve trivial conflicts] Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
* gallium/u_index_modify: don't add PIPE_TRANSFER_UNSYNCHRONIZED unconditionallyMarek Olšák2017-03-015-6/+14
| | | | | | | | | It's OK for r300g (because r300g can't write to buffers via the GPU), but not later hardware. This issue was spotted randomly. Cc: [email protected] Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit c8ef5123980f9f538c79e626b0092660a2256ae6)
* gallium/util: remove unused u_index_modify helpersMarek Olšák2017-03-012-101/+0
| | | | | | | Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 42297c862f60ccecf794297ee97410f007bd75df) [Emil Velikov: Nominate as a requirement for next commit] Nominated-by: Emil Velikov <[email protected]>
* radeonsi: fix UNSIGNED_BYTE index buffer fallback with non-zero start (v2)Marek Olšák2017-03-011-2/+2
| | | | | | | | | | | | | | | | | start can only be non-zero with MultiDrawElements, which is unlikely to occur with UNSIGNED_BYTE indices. v2: Also fix the util_shorten_ubyte_elts_to_userptr call. Tested with the new piglit. Cc: [email protected] Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit a264fee6245856340fab9024e1a428626e966335) [Emil Velikov: resolve trivial conflicts] Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/gallium/drivers/radeonsi/si_state_draw.c
* nvc0: disable linked tsc mode in compute launch descriptorIlia Mirkin2017-02-232-2/+6
| | | | | | | | | | | Empirically, this makes things work. Presumably this was originally copied from the blob, which does make use of linked tsc mode. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99532 Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected] (cherry picked from commit 956556b3c30ce3d38d0af795f9383df3bc2cf8a2)
* tgsi: fix memory leak in tgsi sanity checkDave Airlie2017-02-231-3/+5
| | | | | | | | | | This just fixes this without repeating the code. Reported-by: Li Qiang Cc: "17.0" <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit 69fc7a2c828adbb454072d386a26b568e56dd886)
* nvc0: set the render condition in the compute objectIlia Mirkin2017-02-231-2/+10
| | | | | | | | Fixes GL45-CTS.compute_shader.conditional-dispatching Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 48f04862c1d74844db9534b32ef73e5a2bc0ae74)
* gm107/ir: fix address offset bitfield for ATOMSIlia Mirkin2017-02-231-1/+1
| | | | | | | | Fixes GL45-CTS.compute_shader.atomic-case1 on Maxwell Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 7e75f0913ab545be14feb233d1ed74dc48116fb8)
* vc4: Avoid emitting small immediates for UBO indirect load address guards.Eric Anholt2017-02-235-4/+20
| | | | | | | | | | | | | The kernel will reject our shader if we emit one here, and having 4, 8, or 12 as the top end of our UBO clamp rare is enough that it's not worth making the kernel let us. Fixes piglit fs-const-array-of-struct and fs-const-array-of-struct-of-array since recent GLSL linking changes made us get this as an indirect load of a uniform, instead of a tempoary. Cc: "13.0 17.0" <[email protected]> (cherry picked from commit b2309393039b2ec0cc00a8e6fd828c60c4ef1e11)
* gallivm: Reenable PPC VSX (v3)Ben Crocker2017-02-231-1/+13
| | | | | | | | | | | | | | | | | Reenable the PPC64LE Vector-Scalar Extension for LLVM versions >= 3.8.1, now that LLVM bug 26775 and its corollary, 25503, are fixed. Amendment: remove extraneous spaces in macro def & invocations. We would prefer a runtime check, e.g. via an LLVMQueryString (analogous to glGetString, eglQueryString) or LLVMGetVersion API, but no such API exists at this time. Signed-off-by: Ben Crocker <[email protected]> [Emil Velikov: remove LLVM_VERSION macro] Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 3f1b6ef2aa9c99bebe539f1de5a5054d90fc5dc3)
* gallium/radeon: fix performance of buffer readbacksMarek Olšák2017-02-101-8/+9
| | | | | | | | | | | | | | | | We want cached GTT for all non-persistent read mappings. Set level = 0 on purpose. Use dma_copy, because resource_copy_region causes a failure in the PBO read of piglit/getteximage-luminance. If Rocket League used the READ flag, it should get cached GTT. v2: mask out UNSYNCHRONIZED Cc: 13.0 17.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit d86099df0af7c22c8acfd48b38ad446d9c8df6bd)
* tgsi-dump: dump label if instruction has oneMarc-André Lureau2017-02-101-11/+13
| | | | | | | | | | | | | | | The instruction has an associated label when Instruction.Label == 1, as can be seen in ureg_emit_label() or tgsi_build_full_instruction(). This fixes dump generating extra :0 labels on conditionals, and virgl parsing more than the expected tokens and eventually reaching "Illegal command buffer" (when parsing more than a safety margin of 10 we currently have). Signed-off-by: Marc-André Lureau <[email protected]> Cc: "13.0 17.0" <[email protected]> Signed-off-by: Dave Airlie <[email protected]> (cherry picked from commit dc2d9b8da14b97376cca9c87e2408763b11bdaa7)
* nvc0/ir: fix ubo max clamp, reset file indexIlia Mirkin2017-02-101-1/+3
| | | | | | | | | | | | We just increased the max UBO, so we should also increase the clamp that we do for robustness. Similarly, as we're including the fileIndex in the new indirect value, we should reset fileIndex to 0 so that it is not added in a second time. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected] (cherry picked from commit c95f821cb4286f8163bfdf341be2b0940011585a)
* nvc0/ir: fix robustness guarantees for constbuf loads on kepler+ computeIlia Mirkin2017-02-101-25/+22
| | | | | | | | | | | | | | Kepler and up unfortunately only support up to 8 constbufs. We work around this by loading from constbufs as if they were storage buffers. However we were not consistently applying limits to loads from these buffers. Make sure to do the same thing we do for storage buffers. Fixes GL45-CTS.robust_buffer_access_behavior.uniform_buffer Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected] (cherry picked from commit 1acdd62847cf0da8a8e9c7915d698208d73a5be8)
* nvc0: increase number of ubo binding pointsIlia Mirkin2017-02-101-3/+2
| | | | | | | | | | | | | | Apparently GL 4.5 requires 14 of these (there's a "*" in the spec, but it's unclear what it refers to). We need to expose an extra binding point for the "program parameters", which means this must be 15. Remove the last vestige of the "use c14 for immediates" idea. Fixes GL45-CTS.shading_language_420pack.binding_uniform_block_array Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected] (cherry picked from commit 59ca352fc573a37f9f70c1f6217e85dd3e31d38e)
* swr: [rasterizer core] Remove dead code Clipper::ClipScalar()Bruce Cherniak2017-02-101-39/+0
| | | | | | | | | | | | | | Clipper::ClipScalar() is dead code and should be removed. It is causing an error with gcc-7 because it references a now defunct member. v2: includes bugzilla reference, same code change Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99633 CC: "13.0 17.0" <[email protected]> Tested-by: Vinson Lee <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Reviewed-by: Tim Rowley <[email protected]> (cherry picked from commit bf29495dcdb290c8b15cacd2001603b8ae5d36c8)
* winsys/amdgpu: avoid potential segfault in amdgpu_bo_map()Samuel Pitoiset2017-02-081-7/+10
| | | | | | | | | | | cs can be NULL when it comes from r600_buffer_map_sync_with_rings() to avoid doing the same checks. It was checked for write mappings but not for read mappings. Cc: "17.0" <[email protected]> Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit af303abcdbeac3b90fb760de19bed56cc40cfff4)
* Revert "radeonsi: decrease the number of texture slots to 24"Marek Olšák2017-02-081-1/+1
| | | | | | | | | | | This reverts commit bdd860e3076655519d45bd66936ef7be9b7dda63. Requested by a game developer. Cc: 17.0 <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit dfe111368d11aaffae7f8738c858c335cdec1e9d)
* etnaviv: force vertex buffers through the MMULucas Stach2017-02-031-1/+4
| | | | | | | | | | | This fixes a vertex data corruption issue if some of the vertex streams go through the MMU and some don't. Signed-off-by: Lucas Stach <[email protected]> Tested-by: Philipp Zabel <[email protected]> Acked-by: Christian Gmeiner <[email protected]> (cherry picked from commit e158b7497103f145a9236a70183e07c37a9e13f7) Nominated-by: Christian Gmeiner <[email protected]>
* st/va: make sure that we call begin_frame() only once v2Christian König2017-02-032-3/+9
| | | | | | | | | | | This fixes "st/va: delay calling begin_frame until we have all parameters". v2: call begin frame after decoder (re)creation as well. Signed-off-by: Christian König <[email protected]> Reviewed-by: Nayan Deshmukh <[email protected]> Tested-by: Andy Furniss <[email protected]> (cherry picked from commit 1338d912f52b69f76ef75d1ad313893db77d4da8)
* st/vdpau: only send buffers with B8G8R8A8 format to XNayan Deshmukh2017-02-033-3/+11
| | | | | | | | | | | | | | | | | | | | PresentPixmap only works if the pixmap depth matches with the window depth, otherwise it returns a BadMatch protocol error. Even if the depths match, the result won't look correctly if the VDPAU RGB component order doesn't match the X11 one so we only allow the X11 format. For other buffers we copy them to a buffer which is send to X. v2: only send buffers with format VDP_RGBA_FORMAT_B8G8R8A8 v3: reword commit message v4: add comment explaining the code Signed-off-by: Nayan Deshmukh <[email protected]> Reviewed-by: Christian König <[email protected]> (cherry picked from commit 31908d6a4a3309f4cd4b953d6eecdf41595b1299) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99637 Nominated-by: Nayan Deshmukh <[email protected]> Nominated-by: Michel Dänzer <[email protected]> (IRC)
* android: fix llvm, elf dependencies for M, N releasesMauro Rossi2017-02-031-1/+1
| | | | | | | | | | | | | | These changes set the correct llvm version and elf include path which differ for Marshmallow and Nougat Cc: "17.0" <[email protected]> Reviewed-by: Emil Velikov <[email protected]> (cherry picked from commit 9c45bb731c97d1f02f83b872c67b2c1b04ec3a41) [Emil Velikov: resolve trivial conflicts] Signed-off-by: Emil Velikov <[email protected]> Conflicts: Android.common.mk
* etnaviv: Set SE.CLIP registers, add margins for scissor/clip registersWladimir J. van der Laan2017-02-033-20/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes rendering of full-screen quads (and other screen-filling geometry, e.g. ioquake3 walls up-close) on gc3000. It should be a no-op on other hardware. - It looks like SE_CLIP registers were not set at all. I'm amazed that rendering worked without them. Emit them to avoid issues on gc3000. - Define constants ETNA_SE_SCISSOR_MARGIN_RIGHT (0x1119) ETNA_SE_SCISSOR_MARGIN_BOTTOM (0x1111) ETNA_SE_CLIP_MARGIN_RIGHT (0xffff) ETNA_SE_CLIP_MARGIN_BOTTOM (0xffff) These demarcate the margin (fixp16) between the computed sizes and the value sent to the chip. I have set these to the numbers used by the Vivante driver for gc2000. I am not sure whether any old hardware was relying on the old numbers, or whether those were just a guess. But if so, these need to be moved to the _specs structure. CC: <[email protected]> Signed-off-by: Wladimir J. van der Laan <[email protected]> Acked-by: Christian Gmeiner <[email protected]> (cherry picked from commit 56314f5bafdfeb514adf8401c52f216bd430bbb2)
* etnaviv: Generate new sin/cos instructions on GC3000Wladimir J. van der Laan2017-02-033-1/+40
| | | | | | | | | | | | | | | | | | | | | | Shaders using sin/cos instructions were not working on GC3000. The reason for this turns out to be that these chips implement sin/cos in a different way (but using the same opcodes): - Need their input scaled by 1/pi instead of 2/pi. - Output an x and y component, which need to be multiplied to get the result. - tex_amode needs to be set to 1. Add a new bit to the compiler specs and generate these instructions as necessary. CC: <[email protected]> Signed-off-by: Wladimir J. van der Laan <[email protected]> Acked-by: Christian Gmeiner <[email protected]> (cherry picked from commit fe3bb8cdb519a01e6315ce6f142827aece3d4a41)
* etnaviv: Cannot render to rb-swapped formatsWladimir J. van der Laan2017-02-031-2/+5
| | | | | | | | | | | | | | | Exposing rb swapped (or other swizzled) formats for rendering would involve swizzing in the pixel shader. This is not the case at the moment, so reject requests for creating such surfaces. (GPUs that need an extra resolve step anyway due to multiple pixel pipes, such as gc2000, might also do this swap in the resolve operation. But this would be tricky to keep track of) CC: <[email protected]> Signed-off-by: Wladimir J. van der Laan <[email protected]> Acked-by: Christian Gmeiner <[email protected]> (cherry picked from commit 658568941d5e232d690e1ffbcddbd6ea9685693a)
* etnaviv: Avoid infinite loop in find_frame()Christian Gmeiner2017-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | Use of unsigned loop control variable with '>= 0' would lead to infinite loop. Reported by clang: etnaviv_compiler.c:1024:39: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare] for (unsigned sp = c->frame_sp; sp >= 0; sp--) ~~ ^ ~ v2: Simply use the same datatype as c->frame_sp is using. CC: <[email protected]> Reported-by: Rhys Kidd <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Rhys Kidd <[email protected]> (cherry picked from commit 82fe240a9912d78bc2eec513c1139c918c5f189f)
* radeonsi: don't invoke DCC decompression in update_all_texture_descriptorsMarek Olšák2017-02-031-5/+6
| | | | | | | | | | | | | | This fixes a bug uncovered by the 17-part patch series, specifically: "gallium/radeon: merge dirty_fb_counter and dirty_tex_descriptor_counter" If dirty_tex_counter has been updated and set_shader_image invokes DCC decompression, the DCC decompression itself checks the counter and updates descriptors, which in turn invokes the same DCC decompression. The blitter can't handle the recursion and the driver eventually crashes. Cc: 17.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit a0740d59aa97a08d89998cb57138e8217a331af6)
* r600: Fix stack overflowBartosz Tomczyk2017-02-031-1/+1
| | | | | | | | | | Commit 7b5878ee0491e7a93914389a8369cd6752b9757d increased number of outputs to 64, but left output array intact. This caused stack overflow when number of outputs is bigger then 32. Found by ASAN. Cc: "12.0 13.0 17.0" <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit a41f2527ae8ae5432b99c88863fbdf2f0b5f04ad)
* d3dadapter9: automake: include builddir prior to srcdirEmil Velikov2017-02-031-1/+1
| | | | | | | | | Analogous to previous commit. Cc: "12.0 13.0" <[email protected]> Cc: Axel Davy <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit d221bf9b91900c62069cc447dc214c04a9e5261c)
* st/dri: automake: include builddir prior to srcdirEmil Velikov2017-02-031-1/+1
| | | | | | | | Analogous to previous commit. Cc: "12.0 13.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 517f34b4be0ac4a5a508ccb6dcaeca3c975585b0)
* clover: automake: include builddir prior to srcdirEmil Velikov2017-02-031-1/+1
| | | | | | | | | | Analogous to previous commit. Cc: "12.0 13.0" <[email protected]> Cc: Aaron Watry <[email protected]> Cc: Francisco Jerez <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 65d5a60caca632a7c03cd1dc554645f27f408f37)
* freedreno: automake: correctly set MKDIR_GENEmil Velikov2017-02-031-0/+1
| | | | | | | | | | | | | Analogous to previous commit. Fixes: 4610e5ef28e "freedreno/ir3: fix sin/cos" Cc: "12.0 13.0" <[email protected]> Cc: Rob Clark <[email protected]> Cc: Nicolas Dechesne <[email protected]> Reported-by: Nicolas Dechesne <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Tested-by: Nicolas Dechesne <[email protected]> (cherry picked from commit a922c821255bfac22cf705244e5bd303a626bb55)
* radeonsi: handle first_non_void correctly in si_create_vertex_elementsMarek Olšák2017-02-031-3/+3
| | | | | | | | | This fixes R11G11B10_FLOAT, because it's in the category of "OTHER", meaning that it doesn't have any channel description. Cc: 17.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit eac7df43ca05abd9992b305e078e88fe7b7f8c91)
* gallivm: (trivial) fix ddiv cpu implementationRoland Scheidegger2017-02-031-1/+0
| | | | | | | | | | | | we can't use the cpu implementation of fdiv, as this one uses different lp_build_context, which causes assertion failure. Just use default fdiv action (there is no fast rcp for doubles which we could potentially use anyway). Cc: 17.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> (cherry picked from commit 25208949d7293aa060a3416f8cf3cdb3ca1fbfdd)
* tgsi: implement ddiv opcodeRoland Scheidegger2017-02-031-0/+14
| | | | | | | | | | softpipe (along with llvmpipe) claims to support arb_gpu_shader_fp64, so we really need to support that opcode. Cc: 17.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> (cherry picked from commit 3b575a955c1d84744a65160e2c45f0ce407effd8)
* radeonsi: always set the TCL1_ACTION_ENA when invalidating L2Marek Olšák2017-01-241-1/+2
| | | | | | | | | Some CIK-VI docs say this is the default behavior on SI. That doesn't answer whether it's also the default behavior on CIK-VI. Cc: 17.0 13.0 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 573bf0940a08e18a511e338de478f30fd95a1590)