summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* gallium/radeon: fix ARB_query_buffer_object conversion to booleanNicolai Hähnle2017-08-031-1/+2
| | | | | | | | | | The issue here is that the immediate is treated as a 64-bit value, and fetching it does not work reliably with swizzles that are different from xy and zw. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit da83687c4ba7e9022f6f14176393a9e3c6391ed5)
* etnaviv: fix memory leak when BO allocation failsLucas Stach2017-08-031-1/+5
| | | | | | | | | | | The resource struct is already allocated at this point and should be freed properly. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Philipp Zabel <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Reviewed-by: Wladimir J. van der Laan <[email protected]> (cherry picked from commit 4fb9f97047eb1e43c47cb7cacba27ccd20383eff)
* swr: remove unneeded fallback strcasecmp defineEmil Velikov2017-08-031-5/+0
| | | | | | | | | | The last user of the function was removed with earlier commit. Fixes: 50842e8a931 ("swr: replace gallium->swr format enum conversion") Cc: Tim Rowley <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tim Rowley <[email protected]> (cherry picked from commit a0755f2e6a1b41b2c5e295fa5ff8eb8dfbf5eb41)
* gallium/radeon: make S_FIXED function signed and move it to shared codeMarek Olšák2017-08-033-9/+5
| | | | | | | | | | | | This fixes a bug uncovered by: 2412c4c81ea0488df865817a0de91ec46e359b72 util: Make CLAMP turn NaN into MIN. Cc: 17.2 <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 433f6f7ac9ed6624fec02cc055c3bfa247dba185)
* radeonsi/gfx9: reduce max threads per block to 1024 on gfx9+Nicolai Hähnle2017-08-031-15/+27
| | | | | | | | | | | | | | | The number of supported waves per thread group has been reduced to 16 with gfx9. Trying to use 32 waves causes hangs, and barriers might not work correctly with > 16 waves. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit a0e6b9a2db5aa5f06a4f60d270aca8344e7d8b3f) [Emil Velikov: add a HAVE_LLVM check, as applicable in branch] Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/gallium/drivers/radeon/r600_pipe_common.c
* radeonsi: fix detection of DRAW_INDIRECT_MULTI on SINicolai Hähnle2017-08-031-2/+2
| | | | | | | | | | | | | | | | | The firmware version numbers for SI were wrong. The new numbers are probably too conservative (we don't have a definitive answer by the firmware team), but DRAW_INDIRECT_MULTI has been confirmed to work with these versions on Tahiti (by Gustaw) and on Verde (by myself). While this is technically adding a feature, it's a feature we thought we had for a long time. The change is small enough and we're early enough in the 17.2 release cycle that it should still go in. Reported-by: Gustaw Smolarczyk <[email protected]> Cc: 17.2 <[email protected]> Acked-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 65fbaab0b74b6b5a2ac483d48beeefa0a29ff15e)
* broadcom/vc4: Prefer blit via rendering to the software fallback.Eric Anholt2017-08-031-6/+8
| | | | | | | | I don't know how I managed to leave this here for so long. Found when working on a 1:1 overlapping blit extension for X11. Cc: [email protected] (cherry picked from commit 93fec49a75ce799bb6fe167f9409fd553a5781c6)
* etnaviv: Clear lbl_usage array correctlyWladimir J. van der Laan2017-08-031-1/+1
| | | | | | | | | | | | | | Fill the entire array instead of just a quarter. This avoids crashes with large shaders. (currently this never causes a problem because shaders larger than 2048/4 instructions are not supported by this driver on any hardware, but it will cause problems in the future) Fixes: ec436051899 ("etnaviv: fix shader miscompilation with more than 16 labels") Cc: [email protected] Signed-off-by: Wladimir J. van der Laan <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 15a1ceb127b70ac98b03cae051927f75fb7ee204)
* swr: don't forget to link AVX/AVX2 against pthreadsEmil Velikov2017-08-031-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Seems like the backends have been using pthreads since day one, yet we've been missing the link. With later commit we'll fix a typo, hence the libraries will be build with -Wl,no-undefined, aka failing the build on unresolved symbols. v2: Split from a larger patch. Cc: [email protected] Cc: Bruce Cherniak <[email protected]> Cc: Tim Rowley <[email protected]> Cc: Laurent Carlier <[email protected]> Fixes: c6e67f5a9373e916a8d2 "gallium/swr: add OpenSWR rasterizer" Reviewed-by: Eric Engestrom <[email protected]> Signed-off-by: Emil Velikov <[email protected]> (cherry picked from commit 33d397ada50a1d1f485205e847003dc48146ec19) [Emil Velikov: add PTHREAD_LIBS to COMMON_LIBADD] Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/gallium/drivers/swr/Makefile.am
* swr/rast: quit using linux-specific gettid()Tim Rowley2017-08-032-4/+3
| | | | | | | | | | | | | | Linux-specific gettid() syscall shouldn't be used in portable code. Fix does assume a 1:1 thread:LWP architecture, but works for our current target platforms and can be revisited later if needed. Fixes unresolved symbol in linux scons builds. v2: add comment in code about the 1:1 assumption. Cc: [email protected] Reviewed-by: Bruce Cherniak <[email protected]> (cherry picked from commit d1e7153228304eb1be85580cbfdea1a57c5f203b)
* radeonsi/gfx9: fix crash building monolithic merged ES-GS shaderNicolai Hähnle2017-08-031-2/+3
| | | | | | | | | | | | | | | | | Forwarding from the ES prolog to the ES just barely exceeds the current maximum array size when 16 vertex attributes are used. Give it a decent bump to account for merged shaders having up to 32 user SGPRs. Fixes a crash in GL45-CTS.multi_bind.draw_bind_vertex_buffers. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit c22e3c5373ad0df160f13fe8271c32e8d7e61b43) [Emil Velikov: resolve trivial conflicts - drop initial[] hunk] Signed-off-by: Emil Velikov <[email protected]> Conflicts: src/gallium/drivers/radeonsi/si_shader.c
* nv50/ir: fix threads calculation for non-compute shadersIlia Mirkin2017-08-031-5/+9
| | | | | | | | | | | We were using the "cp" union fields, which are only valid for compute shaders. The threads calculation affects the available GPRs, so just pick a small number for other shader types to avoid limiting available registers. Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 3645268748c44825ce8d37bf03f684731eb2652a)
* svga: fix texture swizzle writemaskingBrian Paul2017-08-031-0/+2
| | | | | | | | | | | | | | | | Commit bfe1e7737a76e3b046 changed how texture swizzles are set up. This exposed a latent bug in the VMware driver: we were ignoring the texture instruction's writemask when applying the 0 and 1 swizzle terms. This wasn't caught by the Piglit texture swizzle test because it only exercises fixed function (no write masking). Fixes issues seen with ETQW apitrace. CC: <[email protected]> Reviewed-by: Charmaine Lee <[email protected]> (cherry picked from commit f7e78abdf45b26f3991dc336120162ae01b208f1)
* svga: fix PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE valueBrian Paul2017-07-121-1/+4
| | | | | | | | | | | | | | This query is supposed to return the max texture buffer size/width in texels, not size in bytes. Divide by 16 (the largest format size) to return texels. Fixes Piglit arb_texture_buffer_object-max-size test. Cc: [email protected] Reviewed-by :Charmaine Lee <[email protected]> (cherry picked from commit 3b28eaabf603657c388caa72bc92b1b660d00b2a)
* svga: fixed surface size to include array sizeCharmaine Lee2017-07-121-1/+2
| | | | | | | | | | This patch fixes the total surface size in surface cache to include array size as well. Tested with MTT glretrace. Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit adead35320c0afe95f3f170a6047905179f8c6c3)
* svga: loop over box.depth for ReadBack_image on each sliceNeha Bhende2017-07-121-7/+8
| | | | | | | | | piglit test ext_texture_array-gen-mipmap is fixed with this patch. Tested with mtt piglit, glretrace, viewperf and conform. No regression. Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit 31fe1d10b291bcd1b9ee376d53db05028719831d)
* gallium/radeon: fix a possible crash for buffer exportsMarek Olšák2017-07-121-9/+15
| | | | | Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit e6dbe975eff8e23992c9d9a72ce302896b5fecfc)
* etnaviv: don't dereference etna_resource pointer if allocation failsAleksander Morgado2017-07-121-3/+7
| | | | | | | | The check for the pointer being non-NULL was being done too late. Signed-off-by: Aleksander Morgado <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit a6893a50c8ae5b68e4175366dac718ee9f6fa9d1)
* svga: clamp device line width to at least 1 to fix HWv8 line stipplingBrian Paul2017-07-122-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The line stipple fallback code for virtual HW version 8 didn't work. With HW version 8, we were getting zero when querying the max line widths (AA and non-AA). This means we were setting the draw module's wide line threshold to zero. This caused the wide line stage to always get enabled. That caused the line stipple module to fall because the wide line stage was clobbering the rasterization state with a state object setting the line stipple pattern to 0xffff. Now the wide_lines variable in draw's validate_pipeline() will not be incorrectly set. Also improve debug output. BTW, also this fixes several other piglit tests: polygon-mode, primitive- restart-draw-mode, and line-flat-clip-color since they all use the draw module fallback. See VMware bug 1895811. Reviewed-by: Charmaine Lee <[email protected]> (cherry picked from commit c2b92dada076afc303e31e3d029256d234254c27) Squashed with: svga: adjust line subpixel position for HWv8 This fixes two regressions on HWv8: Piglit gl-1.0-ortho-pos Piglit/glean fbo This was caused by commit c2b92dada076a "svga: clamp device line width to at least 1 to fix HWv8 line stippling" This also fixes two conform tests: Vertex Order and Polygon Face No Piglit/conform changes with HWv9 or later. VMware bug 1905053 Reviewed-by: Charmaine Lee <[email protected]> (cherry picked from commit 5b8d33acefa9adbf1f0c9ff10f1933a0b3a5c66b)
* etnaviv: fix refcnt initialization in etna_screenAleksander Morgado2017-07-121-0/+1
| | | | | | | | | | | | | | | | | | Despite being a member of the etna_screen struct, 'refcnt' is used by the winsys-specific logic to track the reference count of the object managed in a hash table. When the count reaches zero, the pipe screen is removed from the table and destroyed. Fix the logic by initializing the refcnt to 1 when screen created. This initialization is done in etna_screen_create(), to follow the same logic as in freedreno and virgl. Fixes: c9e8b49b885 ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Aleksander Morgado <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> (cherry picked from commit 5d8514de14bd27170293bb373e06f5ff43c708ad)
* swr/rast: Correctly allocate SWR_STATS memory as cacheline alignedTim Rowley2017-07-122-5/+5
| | | | | | | | | | | | | Cacheline alignment of SWR_STATS to prevent sharing of cachelines between threads (performance). Gets rid of gcc-7.1 warning about using c++17's over-aligned new feature. Cc: [email protected] Reviewed-by: Bruce Cherniak <[email protected]> (cherry picked from commit bab03c06fc79ec5624982777684d0c5f123c127c)
* swr/rast: _mm*_undefined_* implementations for gcc<4.9Tim Rowley2017-07-122-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Define these in terms of setzero for ancient gcc versions which don't have the undefined intrinsics. Cc: [email protected] Reviewed-by: Bruce Cherniak <[email protected]> (cherry picked from commit f0a22956be4802e01f2b4f3244f011212626f12d) Squashed with: swr: modifications to allow gcc-4.8 compilation Code unconditionally used avx2 intrinsics in the avx compilation. The simd intrinsics library we used has diverged significantly between branch and master; the non-“undefined intrinsics” portion is specific to the branch. This complements: f0a22956be “swr/rast: _mm*_undefined_* implementations for gcc<4.9” And makes this branch equivalent with the additional master patch: d50ef7332c “swr/rast: don't use _mm256_fmsub_ps in AVX code”
* swr: Limit memory held by defer deleted resources.Bruce Cherniak2017-07-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | This patch limits the number of items on the fence work queue (the deferred deletion list) by submitting a sync fence when the queue size exceeds a threshold. This initiates deferred deletion of all resources on the list and decreases the total amount of memory held waiting for "deferred deletion". This resolves bug 101467 filed against swr for the piglit streaming-texture-leak test. For those running on smaller memory (16GB?) systems, this will prevent oom-killer. Thus far, we have not seen any real world applications that exhibit behavior like the streaming-texture-leak test; as any form of pipeline flush will trigger the defer queue and properly free any retained allocations. But, this addresses those as well. Cc: "17.1" <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> (cherry picked from commit 32c1a54bd01465e77a8e26b9cc8d2487b31509c5)
* etnaviv: fix shader miscompilation with more than 16 labelsLucas Stach2017-07-081-28/+32
| | | | | | | | | | | | | | The labels array may change its virtual address on a reallocation, so it is invalid to cache pointers into the array. Rather than using the pointer directly, remember the array index. Fixes miscompilation of shaders in glmark2 ideas, leading to GPU hangs. Fixes: c9e8b49b (etnaviv: gallium driver for Vivante GPUs) Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit ec43605189907fa327a4a7f457aa3c822cfdea5d)
* radeonsi: include ac_binary.h for struct ac_shader_binaryEmil Velikov2017-06-281-2/+2
| | | | | | | | | | | | | | | | The header embeds the struct so it needs the header inclusion instead of the dummy forward declaration. Cc: Nicolai Hähnle <[email protected]> Cc: Marek Olšák <[email protected]> Cc: Tom Stellard <[email protected]> Fixes: 32206c5e560 ("radeonsi: Add radeon_shader_binary member to struct si_shader") Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Bas Nieuwenhuizen <[email protected]> (cherry picked from commit 1f958c1337290b4062a77f79fc101bb9f4bdf515)
* nv50/ir: fix combineLd/St to update existing records as necessaryIlia Mirkin2017-06-281-0/+8
| | | | | | | | | | | | | | | | | | | | | | Previously the logic would decide that the record is kept, which translates into keep = false in the caller, which meant that these passes did not run. While it's right that keep = false which means that a new record does not need to be added, we do still have to perform the usual list maintenance. It's easiest to do this pre-merge rather than post. The lowering that clip/cull distance passes produce triggers this bug in TCS (since reading outputs is done differently in other stages), but it should be possible to achieve it with the right sequence of regular reads/writes. Fixes: KHR-GL45.cull_distance.functional Fixes: generated_tests/spec/arb_tessellation_shader/execution/tes-input/tes-input-gl_ClipDistance.shader_test Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected] (cherry picked from commit 4a79f2be337cef920fc8ea5048fabc106bac492e)
* nv50/ir: fetch indirect sources BEFORE the op that uses themIlia Mirkin2017-06-281-19/+32
| | | | | | | | | | | All the BuildUtil helpers just insert the operation into the current BB. So we have to take care that any fetchSrc() operations happen before the operation whose setIndirect() it goes into. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: [email protected] (cherry picked from commit 8c02ee4a8b0bea5dda3ced341dce81f340457c95)
* etnaviv: only flush resource to self if no scanout buffer existsLucas Stach2017-06-281-4/+5
| | | | | | | | | | | | | Currently a resource flush may trigger a self resolve, even if a scanout buffer exists, but is up to date. If a scanout buffer exists we only ever want to flush the resource to the scanout buffer. This fixes a performance regression. Fixes: dda956340ce9 (etnaviv: resolve tile status when flushing resource) Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Philipp Zabel <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 28550c787595f04453d2a39f46f570a891368fcf)
* nv50/ir: Properly fold constants in SPLIT operationPierre Moreau2017-06-281-3/+4
| | | | | | | | Fixes: b7d9677d ("nv50/ir: constant fold OP_SPLIT") Cc: [email protected] Signed-off-by: Pierre Moreau <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> (cherry picked from commit afb8f2d4a346041adf54d45729963a55a625ac1f)
* svga: check return value from svga_set_shader( SVGA3D_SHADERTYPE_GS, NULL)Brian Paul2017-06-281-0/+2
| | | | | | | | | | | | If the call fails we need to flush the command buffer and retry. In this case, we were failing to unbind the GS which led to subsequent errors. This fixes a bug replaying a Cinebench R15 apitrace in a Linux guest. VMware bug 1894451 cc: [email protected] Reviewed-by: Charmaine Lee <[email protected]> (cherry picked from commit 041f8ae9f6bab39361263f6c767ea5294f1aa011)
* svga: use the winsys interface to invalidate surfaceCharmaine Lee2017-06-283-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of directly sending the InvalidateGBSurface command, this patch uses the invalidate_surface interface. Fixes Linux VM piglit failures including ext_texture_array-gen-mipmap, fbo-generatemipmap-array S3TC_DXT1 Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit 019d5d534682145a3d5921b061ea46f8c872d6a0) Squashed with commit: svga: fix pre-mature flushing of the command buffer When surface_invalidate is called to invalidate a newly created surface in svga_validate_surface_view(), it is possible that the command buffer is already full, and in this case, currently, the associated wddm winsys function will flush the command buffer and resend the invalidate surface command. However, this can pre-maturely flush the command buffer if there is still pending image updates to be patched. To fix the problem, this patch will add a return status to the surface_invalidate interface and if it returns FALSE, the caller will call svga_context_flush() to do the proper context flush. Note, we don't call svga_context_flush() if surface_invalidate() fails when flushing the screen surface cache though, because it is already in the process of context flush, all the image updates are already patched, calling svga_context_flush() can trigger a deadlock. So in this case, we call the winsys context flush interface directly to flush the command buffer. Fixes driver errors and graphics corruption running Tropics. VMware bug 1891975. Also tested with MTT glretrace, piglit and various OpenGL apps such as Heaven, CinebenchR15, NobelClinicianViewer, Lightsmark, GoogleEarth. cc: [email protected] Reviewed-by: Brian Paul <[email protected]> (cherry picked from commit 3fbdab8778d3b55ed6053a3781e92aeff85ca174)
* gallium/radeon/gfx9: fix PBO texture uploads to compressed texturesNicolai Hähnle2017-06-281-1/+6
| | | | | | | | | | st/mesa creates a surface that reinterprets the compressed blocks as RGBA16UI or RGBA32UI. We have to adjust width0 & height0 accordingly to avoid out-of-bounds memory accesses by CB. Cc: 17.1 <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 25e5534734b7de2a2359c42eeff5fd0c3c0507da)
* etnaviv: advertise correct max LOD biasLucas Stach2017-06-281-1/+3
| | | | | | | | | | | | | The maximum LOD bias supported is the same as the max texture level supported. Fixes piglit: ext_texture_lod_bias Fixes: c9e8b49b ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 5065549e2a75e2a56cd3bc8b0fbb6c9013e86cb4)
* etnaviv: mask correct channel for RB swapped rendertargetsLucas Stach2017-06-283-13/+46
| | | | | | | | | | | | | | Now that we support RB swapped targets by using a shader variant, we must derive the color mask from both the blend state and the bound framebuffer. Fixes piglit: fbo-colormask-formats Fixes: 7f62ffb68ad ("etnaviv: add support for rb swap") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 8644b59b5d98cf58deaecc583f68edd8be23bfca)
* etnaviv: replace translate_clear_color with util_pack_colorLucas Stach2017-06-282-48/+12
| | | | | | | | | | | | | | | | This replaces the open coded etnaviv version of the color pack with the common util_pack_color. Fixes piglits: arb_color_buffer_float-clear fcc-front-buffer-distraction fbo-clearmipmap Fixes: c9e8b49b ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit d6aa2ba2b293f78d9c28922ed3af9077100f3480)
* etnaviv: remove bogus assertLucas Stach2017-06-281-2/+0
| | | | | | | | | | | | etna_resource_copy_region handles resources with multiple samples by falling back to the software path. There is no need to kill the application there. Fixes: c9e8b49b ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 6633880e7e0557b3dc4e89e62857bd7b548c93fd)
* etnaviv: use padded width/height for resource copiesLucas Stach2017-06-281-2/+2
| | | | | | | | | | | | | When copying a resource fully we can just blit the whole level. This allows to use the RS even for level sizes not aligned to the RS min alignment. This is especially useful, as etna_copy_resource is part of the software fallback paths (used in etna_transfer), that are used for doing unaligned copies. Fixes: c9e8b49b ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit ff490eb8fd3a1edee1b3aec3f8122f7d6f90a80f)
* etnaviv: don't try RS blit if blit region is unalignedLucas Stach2017-06-281-1/+2
| | | | | | | | | | | If the blit region is not aligned to the RS min alignment don't try to execute the blit, but fall back to the software path. Fixes: c9e8b49b ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 2a6183d416395ca4659e4b6fed9d0918c74cb469)
* swr: relax c++ requirement from c++14 to c++11Tim Rowley2017-06-143-16/+17
| | | | | | | | | | | | Remove c++14 generic lambda to keep compiler requirement at c++11. No regressions on piglit or vtk test suites. Tested-by: Chuck Atkins <[email protected]> Reviewed-by: Bruce Cherniak <[email protected]> CC: [email protected] (cherry picked from commit 0b80b025021f97d27520390867c20336dc891a16)
* radeonsi: disable the patch ID workaround on SI when the patch ID isn't used ↵Marek Olšák2017-06-142-15/+21
| | | | | | | | | | | | | | | | | (v2) The workaround causes a massive performance decrease on 1-SE parts. (Cape Verde, Hainan, Oland) The performance regression is already part of 17.0 and 17.1. v2: check tess_uses_prim_id Cc: 17.0 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 391673af7ad1565a5f6ac8fc2f8c9fcdd1fe9908) [Emil Velikov: s/tcs_tes_uses_prim_id/tess_uses_prim_id/] Signed-off-by: Emil Velikov <[email protected]>
* radeonsi: fix a GPU hang with tessellation on 2-CU configsMarek Olšák2017-06-141-1/+5
| | | | | | | | | | Only harvested Stoney has 2 CUs. Tested on 2-CU Stoney and Fiji forced to 2 CUs. Cc: 17.0 17.1 <[email protected]> Tested-by: Edmondo Tommasina <[email protected]> Tested-by: Dieter Nützel <[email protected]> (cherry picked from commit 6c655cfeb49a8142c44782c5164619a5860c7706)
* nvc0: disable BGRA8 images on FermiLyude2017-06-141-5/+14
| | | | | | | | | | | | | BGRA8 image stores on Fermi don't work, which results in breaking PBO downloads, such that they always return 0x0. Discovered this through a glamor bug, and confirmed it does indeed break a good number of piglit tests such as spec/arb_pixel_buffer_object/pbo-read-argb8888 Fixes: 8e7893eb53213 ("nvc0: add support for BGRA8 images") Signed-off-by: Lyude <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 245912b684b862d47cde10052b137d76a55d0bd3)
* etnaviv: always do cpu_fini in transfer_unmapLucas Stach2017-06-141-3/+6
| | | | | | | | | | | | | | | | | | The cpu_fini() call pushes the buffer back into the GPU domain, which needs to be done for all buffers, not just the ones with CPU written content. The etnaviv kernel driver currently doesn't validate this, but may start to do so at a later point in time. If there is a temporary resource the fini needs to happen before the RS uses this one as the source for the upload. Also remove an invalid comment about flushing CPU caches, cpu_fini takes care of everything involved in this. Fixes: c9e8b49b885 ("etnaviv: gallium driver for Vivante GPUs") Cc: [email protected] Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Philipp Zabel <[email protected]> Reviewed-By: Wladimir J. van der Laan <[email protected]> (cherry picked from commit cab5996c2637c31a78a0196e42ec6de9eb61f270)
* freedreno: fix fence creation fail if no renderingRob Clark2017-06-011-13/+1
| | | | | | | | | | | Android tries to create a FENCE_FD fence without any rendering. And then falls over when that fails. So just always create an initial batch. Fixes: e4ad8695 ("freedreno: fix crash when flush() but no rendering") Signed-off-by: Rob Clark <[email protected]> (cherry picked from commit 8fc9702a1b7027d266121713771eafd2aa1a93b6) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* radeonsi/gfx9: compile shaders with +xnackMarek Olšák2017-05-311-6/+7
| | | | | | | | | so that LLVM doesn't allocate SGPRs where XNACK is. Cc: 17.1 <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (cherry picked from commit 2beb31bd7c186641a2bb9abf6d2e13d42e43d944) Signed-off-by: Juan A. Suarez Romero <[email protected]>
* nvc0/ir: SHLADD's middle source must be an immediateIlia Mirkin2017-05-221-0/+2
| | | | | | | | | The instruction encodings only allow for immediates. Don't try to replace a zero (which is dumb to have in that op in any case) with RZ. Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] (cherry picked from commit 82e77d4e4484b5d4f6a7b4751a17c882e6d2ad69)
* automake: add SWR LLVM gen_builder.hpp workaroundEmil Velikov2017-05-221-30/+11
| | | | | | | | | | | | | | | | | | | | | | As gen_builder.hpp file is generated, it contains information that is specific to the LLVM version it originates from. As suggested by Tim, the file seems to be forwards compatible. So in order to produce ship a file which will work everywhere we should be using earlies supported LLVM - 3.9. With this we're back on track and can build all of mesa without python/mako/flex and friends. In the long term we might want to see if the python generators can be updated to produce LLVM version agnostic files. At least within the range supported by SWR. Cc: <[email protected]> Cc: Chuck Atkins <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tim Rowley <[email protected]> (cherry picked from commit 5233eaf9ee85bb551ea38c1e2bbd8ac167754e50)
* freedreno: fix crash when flush() but no renderingRob Clark2017-05-181-0/+6
| | | | | | | | | | | If we haven't created a batch, just bail in pipe->flush(), since there is nothing to do. Fixes crash in warsow, which creates a whole bunch of contexts used for nothing but texture uploads. Signed-off-by: Rob Clark <[email protected]> (cherry picked from commit e4ad86952a197549894eb4c9a96af0c76dd95d18)
* radeon: automake: remove unneeded elf Cflags/LibsEmil Velikov2017-05-181-4/+2
| | | | | | | | | | | | | No longer required as of commit d90bf4ef3e1 ("radeon: remove unused radeon_elf_util.{c,h}") v2: Add the required libelf link in src/amd/Makefile.common.am Fixes: d90bf4ef3e1 ("radeon: remove unused radeon_elf_util.{c,h}") Cc: Timothy Arceri <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (v1) (cherry picked from commit 88b8aaea3b172d4a0224bcadf5f12e2ae6119a0c)
* vc4: Don't allocate new BOs to avoid synchronization when they're shared.Eric Anholt2017-05-181-1/+2
| | | | | | | | If X11 did a software fallback to the entire screen, we would throw out the BO the screen is scanning out from and allocate a new one. Cc: [email protected] (cherry picked from commit e8ea42d245cb6adc7f16ee4e96fd89d905d2163a)