aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* draw: fix infinite loop in line stipplingRoland Scheidegger2018-11-291-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | The calculated length of a line may be infinite, if the coords we get are bogus. This leads to an infinite loop in line stippling. To prevent this test for this explicitly (although technically on at least x86 sse it would actually work without the explicit test, as long as we use the int-converted length value). While here also get rid of some always-true condition. Note this does not actually solve the root cause, which is that the coords we receive are bogus after clipping. This seems a difficult problem to solve. One issue is that due to float arithmetic, clip w may become 0 after clipping if the incoming geometry is "sufficiently degenerate", hence x/y/z ndc (and window) coords will be all inf (or nan). Even with w not quite 0, I believe it's possible we produce values which are actually outside the view volume. (Also, x=y=z=w=0 coords in clipspace would be not considered subject to clipping, and similarly result in all NaN coords.) We just hope for now other draw stages (and rasterizers) can handle those relatively safely (llvmpipe itself should be sort of robust against this, certainly converstion to fixed point will produce garbage, it might fail a couple assertions but should neither hang nor crash otherwise). Reviewed-by: Jose Fonseca <[email protected]>
* nir: Fix assert in print_intrinsic_instr().Józef Kucia2018-11-291-1/+1
| | | | | Signed-off-by: Józef Kucia <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* amd/addrlib: update Mesa's copy of addrlibNicolai Hähnle2018-11-2936-11402/+860
| | | | | | | | Update to the internal master as of 2018-11-15. This has a lot of gratuitous whitespace change, but on the plus side it's built using the same tooling that's used for AMDVLK, which should help going forward.
* ac/surface/gfx9: let addrlib choose the preferred swizzle kindNicolai Hähnle2018-11-291-18/+4
| | | | | | | | | Our choices here are simply redundant as long as sin.flags is set correctly. (v2: - remove unused function parameter) Reviewed-by: Marek Olšák <[email protected]>
* radv: remove dependency on addrlib gfx9_enum.hNicolai Hähnle2018-11-293-9/+9
| | | | | | | v2: - use SI_CONTEXT_REG_OFFSET Reviewed-by: Dave Airlie <[email protected]>
* winsys/svga: Fix a memory leakThomas Hellstrom2018-11-291-0/+2
| | | | | | | | | The ioctl.cap_3d member was never freed. Cc: [email protected] Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Sinclair Yeh <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* st/xa: Fix a memory leakThomas Hellstrom2018-11-291-0/+1
| | | | | | | | | Free the context after destruction. Cc: [email protected] Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Sinclair Yeh <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* radv: drop few useless state changes when doing color/depth decompressionsSamuel Pitoiset2018-11-292-61/+41
| | | | | | | Viewport/scissor don't need to be updated for array textures. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: remove unused pending_clears param in the transition pathSamuel Pitoiset2018-11-291-11/+6
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: optimize CmdClear{Color,DepthStencil}Image() for layered texturesSamuel Pitoiset2018-11-291-4/+86
| | | | | | | | | | | If all layers are bound we can perform a fast color or depth clear instead of iterating over all layers. This has the advantage to avoid trashing the framebuffer for nothing if you we end up by doing a fast clear when calling radv_clear_image_layer(), and clearing all layers in one shot is obviously faster. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: refactor the fast clear path for better re-useSamuel Pitoiset2018-11-291-38/+40
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: simplify a check in emit_fast_color_clear()Samuel Pitoiset2018-11-291-3/+1
| | | | | | | Currently only true if RADV_PERFTEST=dccmsaa is set. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: add radv_can_fast_clear_{color,depth}() helpersSamuel Pitoiset2018-11-291-44/+89
| | | | | | | For further optimisations. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: add radv_image_view_can_fast_clear() helperSamuel Pitoiset2018-11-291-20/+27
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: add radv_image_can_fast_clear() helperSamuel Pitoiset2018-11-291-29/+39
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: remove useless check in emit_fast_color_clear()Samuel Pitoiset2018-11-291-3/+0
| | | | | | | The driver doesn't support DCC/CMASK for mipmapped textures. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* freedreno: Fix autotools build.Vinson Lee2018-11-281-0/+2
| | | | | | | | | | | | | | | | | | Fix build error. CXXLD pipe_msm.la ../../../../src/gallium/drivers/freedreno/.libs/libfreedreno.a(freedreno_batch.o): In function `batch_init': src/gallium/drivers/freedreno/freedreno_batch.c:54: undefined reference to `fd_device_version' src/gallium/drivers/freedreno/freedreno_batch.c:59: undefined reference to `fd_submit_new' src/gallium/drivers/freedreno/freedreno_batch.c:61: undefined reference to `fd_submit_new_ringbuffer' src/gallium/drivers/freedreno/freedreno_batch.c:64: undefined reference to `fd_submit_new_ringbuffer' src/gallium/drivers/freedreno/freedreno_batch.c:66: undefined reference to `fd_submit_new_ringbuffer' src/gallium/drivers/freedreno/freedreno_batch.c:70: undefined reference to `fd_submit_new_ringbuffer' Fixes: b4476138d5ad ("freedreno: move drm to common location") Fixes: aa0fed10d357 ("freedreno: move ir3 to common location") Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Rob Clark <[email protected]>
* radeonsi: add memory management stress tests for GDSMarek Olšák2018-11-282-0/+48
| | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* winsys/amdgpu: add support for allocating GDS and OA resourcesMarek Olšák2018-11-282-23/+36
| | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radeonsi: allow si_cp_dma_clear_buffer to clear GDS from any IBMarek Olšák2018-11-284-31/+33
| | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* winsys/amdgpu: use optimal VM alignment for CPU allocationsMarek Olšák2018-11-281-2/+4
| | | | Acked-by: Christian König <[email protected]>
* winsys/amdgpu: use optimal VM alignment for imported buffersMarek Olšák2018-11-281-20/+29
| | | | | | Window system buffers didn't use the optimal alignment. Acked-by: Christian König <[email protected]>
* winsys/amdgpu,radeon: pass vm_alignment to buffer_from_handleMarek Olšák2018-11-287-5/+15
| | | | Acked-by: Christian König <[email protected]>
* winsys/amdgpu: overallocate buffers for faster address translation on Gfx9Marek Olšák2018-11-281-0/+24
| | | | | | | | Sadly, the 3 games I tested (DeusEx:MD, DiRT Rally, DOTA 2) are unaffected by the overallocation, because I guess their buffers don't fall into the small range below a power-of-two size. Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* winsys/amdgpu: increase the VM alignment to the MSB of the size for Gfx9Marek Olšák2018-11-281-1/+11
| | | | | Reviewed-by: Christian König <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* winsys/amdgpu: use >= instead of > for VM address alignmentMarek Olšák2018-11-281-1/+1
| | | | | Reviewed-by: Christian König <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* winsys/amdgpu: clean up code around BO VM alignmentMarek Olšák2018-11-281-2/+7
| | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* winsys/amdgpu: optimize slab allocation for 2 MB amdgpu page tablesMarek Olšák2018-11-283-2/+10
| | | | | | | | | | | | | | | - the slab buffer size increased from 128 KB to 2 MB (PTE fragment size) - the max suballocated buffer size increased from 64 KB to 256 KB, this increases memory usage because it wastes memory - the number of suballocators increased from 1 to 3 and they are layered on top of each other to minimize unused space in slabs The final increase in memory usage is: DeusEx:MD: 1.8% DOTA 2: 1.75% DiRT Rally: 0.2% The kernel driver will also receive fewer buffers.
* radeonsi: generalize the slab allocator code to allow layered slab allocatorsMarek Olšák2018-11-283-24/+86
| | | | | There is no change in behavior. It just makes it easier to change the number of slab allocators.
* winsys/amdgpu: always reclaim/release slabs if there is not enough memoryMarek Olšák2018-11-281-7/+13
|
* radeonsi: fix is_oneway_access_only for bindless imagesMarek Olšák2018-11-281-6/+23
|
* radeonsi/nir: parse more information about bindless usageMarek Olšák2018-11-281-4/+32
| | | | fill more tgsi_shader_info fields.
* tgsi/scan: add more information about bindless usageMarek Olšák2018-11-282-2/+33
| | | | radeonsi will use this.
* radeonsi: small cleanup for memory opcodesMarek Olšák2018-11-281-9/+4
|
* radeonsi: fix is_oneway_access_only for image storesMarek Olšák2018-11-281-12/+37
| | | | We need to look at the Dst for image stores.
* radeonsi: use structured buffer intrinsics for image viewsMarek Olšák2018-11-282-10/+42
| | | | to stop using the workaround in si_make_buffer_descriptor.
* radeonsi: clean up primitive binning enablementMarek Olšák2018-11-281-11/+16
| | | | | | no change in behavior. Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* virgl: fix undefined shift to use unsigned.Dave Airlie2018-11-291-1/+1
| | | | | | Ported from virglrenderer. Signed-off-by: Dave Airlie <[email protected]>
* r600: make suballocator 256-bytes alignDave Airlie2018-11-291-1/+1
| | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108311 Cc: <[email protected]>
* intel/compiler: Use nir's info when checking uses_streams.Kenneth Graunke2018-11-281-1/+1
| | | | | | | | | Vulkan and Gallium don't use Mesa's gl_program data structure, so they can't poke at 'prog'. But we can simply use the copy of the shader info stored with the NIR shader, which is guaranteed to exist. Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
* nir/derefs: Add a nir_derefs_do_not_alias enum valueJason Ekstrand2018-11-282-3/+4
| | | | | | This makes some of the code more clear. Reviewed-by: Thomas Helland <[email protected]>
* egl: add missing #include <stddef.h> in egldevice.hGurchetan Singh2018-11-281-1/+1
| | | | | | | | | | | | | | | | | | Otherwise, I get this error: main/egldevice.h:54:13: error: ‘NULL’ undeclared (first use in this function) dev = NULL; ^~~~ with this config: ./autogen.sh --enable-gles1 --enable-gles2 --with-platforms='surfaceless' --disable-glx --with-dri-drivers="i965" --with-gallium-drivers="" --enable-gbm v3: Use stddef.h (Matt) v4: Modify commit message (Eric) Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* gallivm: Use nextafterf(0.5, 0.0) as rounding constantMatt Turner2018-11-281-1/+1
| | | | | | | | | | | The common truncf(x + 0.5) fails for the floating-point value just less than 0.5 (nextafterf(0.5, 0.0)). nextafterf(0.5, 0.0) + 0.5, after rounding is 1.0, thus truncf does not produce the desired value. The solution is to add nextafterf(0.5, 0.0) instead of 0.5 before truncating. This works for all values. Reviewed-by: Roland Scheidegger <[email protected]>
* docs: update calendar, add news item and link release notes for 18.2.6Juan A. Suarez Romero2018-11-283-7/+8
| | | | Signed-off-by: Juan A. Suarez Romero <[email protected]>
* docs: add sha256 checksums for 18.2.6Juan A. Suarez Romero2018-11-281-1/+2
| | | | | Signed-off-by: Juan A. Suarez Romero <[email protected]> (cherry picked from commit cfd1f8b92cae9dde3e5bed42109b5142f50a2ee5)
* docs: add release notes for 18.2.6Juan A. Suarez Romero2018-11-281-0/+178
| | | | | Signed-off-by: Juan A. Suarez Romero <[email protected]> (cherry picked from commit 3e741344d79e3ae67b1ad645e7d56fe6c0fb2ae2)
* egl/wayland: rather obvious build fixNicolai Hähnle2018-11-281-2/+2
| | | | | Fixes: ce74a7bb8de7 ("egl/wayland: plug memory leak in drm_handle_device()") Fixes: c59d3aa4b9bc ("egl/wayland: bail out when drmGetMagic fails")
* winsys/amdgpu: explicitly declare whether buffer_map is permanent or notNicolai Hähnle2018-11-2817-62/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new driver-private transfer flag RADEON_TRANSFER_TEMPORARY that specifies whether the caller will use buffer_unmap or not. The default behavior is set to permanent maps, because that's what drivers do for Gallium buffer maps. This should eliminate the need for hacks in libdrm. Assertions are added to catch when the buffer_unmap calls don't match the (temporary) buffer_map calls. I did my best to update r600 for consistency (r300 needs no changes because it never calls buffer_unmap), even though the radeon winsys ignores the new flag. As an added bonus, this should actually improve the performance of the normal fast path, because we no longer call into libdrm at all after the first map, and there's one less atomic in the winsys itself (there are now no atomics left in the UNSYNCHRONIZED fast path). Cc: Leo Liu <[email protected]> v2: - remove comment about visible VRAM (Marek) - don't rely on amdgpu_bo_cpu_map doing an atomic write Reviewed-by: Marek Olšák <[email protected]>
* winsys/amdgpu: add amdgpu_winsys_bo::lockNicolai Hähnle2018-11-283-13/+20
| | | | | | | We'll use it in the upcoming mapping change. Sparse buffers have always had one. Reviewed-by: Marek Olšák <[email protected]>
* vulkan/wsi: fix s/,/;/ typoEric Engestrom2018-11-281-2/+2
| | | | | | Fixes: 59e58c348e6af16a5f2dd "vulkan/wsi: Only wait on semaphores on the first swapchain" Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>