summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-11-29i965/miptree: recurse to miptree_map for depth in map_depthstencilscottScott D Phillips1-24/+35
Call back to intel_miptree_map when mapping the separate depth miptree in map_depthstencil. This brings us back to the mapping method decision tree in miptree_map where we will then find the best mapping method for depth.
2018-11-29i965/miptree: Split miptree_{, un}map logic and state managementChris Wilson1-27/+64
Previously the miptree map and unmap functions performed the mapping/unmapping decisions and also tracked the state of maps in the miptree structure for later unmapping. By splitting the logic and state management, a later patch will be able to make recursive use of the map function without running afoul of the state management. Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
2018-11-28freedreno: Fix autotools build.Vinson Lee1-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 <vlee@freedesktop.org> Reviewed-by: Rob Clark <robdclark@gmail.com>
2018-11-28radeonsi: add memory management stress tests for GDSMarek Olšák2-0/+48
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: add support for allocating GDS and OA resourcesMarek Olšák2-23/+36
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28radeonsi: allow si_cp_dma_clear_buffer to clear GDS from any IBMarek Olšák4-31/+33
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: use optimal VM alignment for CPU allocationsMarek Olšák1-2/+4
Acked-by: Christian König <christian.koenig@amd.com>
2018-11-28winsys/amdgpu: use optimal VM alignment for imported buffersMarek Olšák1-20/+29
Window system buffers didn't use the optimal alignment. Acked-by: Christian König <christian.koenig@amd.com>
2018-11-28winsys/amdgpu,radeon: pass vm_alignment to buffer_from_handleMarek Olšák7-5/+15
Acked-by: Christian König <christian.koenig@amd.com>
2018-11-28winsys/amdgpu: overallocate buffers for faster address translation on Gfx9Marek Olšák1-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 <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: increase the VM alignment to the MSB of the size for Gfx9Marek Olšák1-1/+11
Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: use >= instead of > for VM address alignmentMarek Olšák1-1/+1
Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: clean up code around BO VM alignmentMarek Olšák1-2/+7
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-28winsys/amdgpu: optimize slab allocation for 2 MB amdgpu page tablesMarek Olšák3-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.
2018-11-28radeonsi: generalize the slab allocator code to allow layered slab allocatorsMarek Olšák3-24/+86
There is no change in behavior. It just makes it easier to change the number of slab allocators.
2018-11-28winsys/amdgpu: always reclaim/release slabs if there is not enough memoryMarek Olšák1-7/+13
2018-11-28radeonsi: fix is_oneway_access_only for bindless imagesMarek Olšák1-6/+23
2018-11-28radeonsi/nir: parse more information about bindless usageMarek Olšák1-4/+32
fill more tgsi_shader_info fields.
2018-11-28tgsi/scan: add more information about bindless usageMarek Olšák2-2/+33
radeonsi will use this.
2018-11-28radeonsi: small cleanup for memory opcodesMarek Olšák1-9/+4
2018-11-28radeonsi: fix is_oneway_access_only for image storesMarek Olšák1-12/+37
We need to look at the Dst for image stores.
2018-11-28radeonsi: use structured buffer intrinsics for image viewsMarek Olšák2-10/+42
to stop using the workaround in si_make_buffer_descriptor.
2018-11-28radeonsi: clean up primitive binning enablementMarek Olšák1-11/+16
no change in behavior. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2018-11-29virgl: fix undefined shift to use unsigned.Dave Airlie1-1/+1
Ported from virglrenderer. Signed-off-by: Dave Airlie <airlied@redhat.com>
2018-11-29r600: make suballocator 256-bytes alignDave Airlie1-1/+1
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108311 Cc: <mesa-stable@lists.freedesktop.org>
2018-11-28intel/compiler: Use nir's info when checking uses_streams.Kenneth Graunke1-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 <jason@jlekstrand.net> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2018-11-28nir/derefs: Add a nir_derefs_do_not_alias enum valueJason Ekstrand2-3/+4
This makes some of the code more clear. Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
2018-11-28egl: add missing #include <stddef.h> in egldevice.hGurchetan Singh1-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 <mattst88@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2018-11-28gallivm: Use nextafterf(0.5, 0.0) as rounding constantMatt Turner1-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 <sroland@vmware.com>
2018-11-28docs: update calendar, add news item and link release notes for 18.2.6Juan A. Suarez Romero3-7/+8
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
2018-11-28docs: add sha256 checksums for 18.2.6Juan A. Suarez Romero1-1/+2
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> (cherry picked from commit cfd1f8b92cae9dde3e5bed42109b5142f50a2ee5)
2018-11-28docs: add release notes for 18.2.6Juan A. Suarez Romero1-0/+178
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> (cherry picked from commit 3e741344d79e3ae67b1ad645e7d56fe6c0fb2ae2)
2018-11-28egl/wayland: rather obvious build fixNicolai Hähnle1-2/+2
Fixes: ce74a7bb8de7 ("egl/wayland: plug memory leak in drm_handle_device()") Fixes: c59d3aa4b9bc ("egl/wayland: bail out when drmGetMagic fails")
2018-11-28winsys/amdgpu: explicitly declare whether buffer_map is permanent or notNicolai Hähnle17-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 <leo.liu@amd.com> v2: - remove comment about visible VRAM (Marek) - don't rely on amdgpu_bo_cpu_map doing an atomic write Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2018-11-28winsys/amdgpu: add amdgpu_winsys_bo::lockNicolai Hähnle3-13/+20
We'll use it in the upcoming mapping change. Sparse buffers have always had one. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2018-11-28vulkan/wsi: fix s/,/;/ typoEric Engestrom1-2/+2
Fixes: 59e58c348e6af16a5f2dd "vulkan/wsi: Only wait on semaphores on the first swapchain" Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2018-11-28egl/wayland: plug memory leak in drm_handle_device()Emil Velikov1-0/+2
As we fail to open the node, we leak the node/device name. v2: Log and then free() (Eric) Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2018-11-28egl/wayland: bail out when drmGetMagic failsEmil Velikov1-1/+8
Currently as the function fails, we pass uninitialized data to the authentication function. Stop doing that and print an warning when the function fails. v2: Plug memory leak in error path (Eric) Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> (v1) Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2018-11-28wsi/display: fix mem leak when freeing swapchainsEric Engestrom1-0/+2
Fixes: da997ebec92942193955 "vulkan: Add KHR_display extension using DRM [v10]" Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2018-11-28i965: Set the FBO error state INCOMPLETE_ATTACHMENT only for SRGB_R8Gert Wollny1-3/+10
Originally the driver reported GL_FRAMEBUFFER_UNSUPPORTED in all cases, adding more specific error messages was not correct and broke many tests. Mostly revert this and only report GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT for MESA_FORMAT_R_SRGB8. Fixes: ebcde3454552adc6d3fea8af2207aafaba857796 i965: be more specific about FBO completeness errors Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108805 Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
2018-11-28i965: Explicitely handle swizzles for MESA_FORMAT_R_SRGB8Gert Wollny1-3/+7
The format is emulated by using ISL_FORMAT_L8_SRGB, therefore we need to force swizzles for the GBA channels. However, doing this only based on the data type GL_RED breaks other formats, therefore, test specifically for the format. Fixes: c5363869d4971780401b21bb75083ef2518c12be i965: Force zero swizzles for unused components in GL_RED and GL_RG Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
2018-11-28virgl: Don't try handling server fences when they are not supportedGert Wollny1-2/+4
vtest doesn't implement the according API and would segfault: Program received signal SIGSEGV, Segmentation fault. #0 0x0000000000000000 in ?? () #1 in virgl_fence_server_sync at src/gallium/drivers/virgl/virgl_context.c:1049 #2 in st_server_wait_sync at src/mesa/state_tracker/st_cb_syncobj.c:155 so just don't do the call when the function pointers are not set. Fixes dEQP: dEQP-GLES3.functional.fence_sync.wait_sync_smalldraw dEQP-GLES3.functional.fence_sync.wait_sync_largedraw Fixes: d1a1c21e7621b5177febf191fcd3d3b8ef69dc96 virgl: native fence fd support Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Robert Foss <robert.foss@collabora.com>
2018-11-28virgl,vtest: Initialize return valueGert Wollny1-1/+1
Avoids: Conditional jump or move depends on uninitialised value(s) at 0x9E2B39F: virgl_vtest_winsys_resource_cache_create (virgl_vtest_winsys.c:379) by 0x9E2725F: virgl_buffer_create (virgl_buffer.c:169) by 0x9E246D5: virgl_resource_create (virgl_resource.c:60) by 0xA0C1B9F: bufferobj_data (st_cb_bufferobjects.c:344) by 0xA0C1B9F: st_bufferobj_data (st_cb_bufferobjects.c:390) by 0x9F4ACE3: vbo_use_buffer_objects (vbo_exec_api.c:1136) by 0xA0C68C3: st_create_context_priv (st_context.c:416) by 0xA0C707A: st_create_context (st_context.c:598) by 0x9F81C6B: st_api_create_context (st_manager.c:918) by 0x9BBE591: dri_create_context (dri_context.c:161) by 0x9BB6931: driCreateContextAttribs (dri_util.c:473) by 0x4E97A44: drisw_create_context_attribs (drisw_glx.c:630) by 0x4E7C591: glXCreateContextAttribsARB (create_context.c:78) Uninitialised value was created by a stack allocation at 0x9E2B249: virgl_vtest_winsys_resource_cache_create (virgl_vtest_winsys.c:342) Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Robert Foss <robert.foss@collabora.com>
2018-11-28intel/compiler: fix register allocation in opt_peephole_selIago Toral Quiroga1-2/+1
This wasn't handling 64-bit cases properly. Found by inspection. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2018-11-27glsl: Remove unused member variableMatt Turner1-4/+0
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
2018-11-27nir: Call fflush() at the end of nir_print_shader()Matt Turner1-0/+1
We normally call with stderr which is unbuffered, so this won't affect that, but it does let me call nir_print_shader(nir, fopen("log", "w+")) from gdb and actually get the whole shader in my file. Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
2018-11-27v3d: Add renderonly support.Eric Anholt6-5/+77
I've been using this with the kmsro series to test v3d on VKMS without my old KMS hack in the v3d kernel driver. KMSRO still needs some cleanup, but v3d RO support seems reasonable.
2018-11-27gallium: Remove unused variable in u_tests.Eric Anholt1-1/+0
Fixes: 0d17b685b1ff ("gallium/u_tests: add a compute shader test that clears an image") Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2018-11-27radv: Align large buffers to the fragment size.Bas Nieuwenhuizen1-1/+5
Improves performance in Talos by about 15% (and significant improvements in RotR and possibly other but did not bench with final patch) on kernel 4.19 and earlier. On 4.20+ a similar effect comes from 433ca054949a "drm/amdgpu: try allocating VRAM as power of two" v2: Do not impact the alignment of the physical memory. Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> CC: <mesa-stable@lists.freedesktop.org>
2018-11-27freedreno: implements get_sample_positionHyunjun Ko1-0/+45
Since 1285f71d3e landed, it needs to provide apps with proper sample position for MSAA. Currently no way to query this to hw, these are taken from blob driver. Fixes: dEQP-GLES31.functional.texture.multisample.samples_#.sample_position Signed-off-by: Rob Clark <robdclark@gmail.com>