OSDN Git Service

android-x86/external-libdrm.git
4 years agomodetest: add FP16 format support
Ilia Mirkin [Sun, 2 Jun 2019 21:54:38 +0000 (17:54 -0400)]
modetest: add FP16 format support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agomodetest: add the ability to specify fill patterns on the commandline
Ilia Mirkin [Sat, 5 Jan 2019 19:02:19 +0000 (14:02 -0500)]
modetest: add the ability to specify fill patterns on the commandline

Instead of hacking the binary every time, we can now specify directly.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agomodetest: add C8 support to generate SMPTE pattern
Ilia Mirkin [Sat, 18 Nov 2017 04:52:46 +0000 (23:52 -0500)]
modetest: add C8 support to generate SMPTE pattern

This includes logic to configure the LUT accordingly.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agomodetest: add an add_property_optional variant that does not print errors
Ilia Mirkin [Sun, 2 Jun 2019 18:33:26 +0000 (14:33 -0400)]
modetest: add an add_property_optional variant that does not print errors

As new features are added and others are declared to be legacy, it's
nice to be able to implement fallbacks. As such, create a
property-setting variant that does not generate errors which can very
well be entirely expected.

Will be used for gamma control in a future change.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agomodetest: don't pretend that atomic mode includes a format
Ilia Mirkin [Mon, 3 Jun 2019 00:20:39 +0000 (20:20 -0400)]
modetest: don't pretend that atomic mode includes a format

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agoutil: add cairo drawing for 30bpp formats when available
Ilia Mirkin [Sun, 2 Jun 2019 21:38:53 +0000 (17:38 -0400)]
util: add cairo drawing for 30bpp formats when available

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agoutil: add fp16 format support
Ilia Mirkin [Mon, 27 May 2019 22:27:24 +0000 (18:27 -0400)]
util: add fp16 format support

This change adds support for all current patterns.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agoutil: add gradient pattern
Ilia Mirkin [Sun, 4 Feb 2018 23:39:15 +0000 (18:39 -0500)]
util: add gradient pattern

The idea is to have a horizontal pattern split into two with the top and
bottom halves having different precision. This allows one to see whether
10bpc support is working properly or not, as there are many pieces to
the puzzle beyond the basic format support (gamma ramps, bpc encodings,
etc).

This is really only useful on 10bpc formats, but we also add support for
8bpc formats to ease testing. In the future, this could be applied to
16bpc formats as well.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agoutil: fix MAKE_RGBA macro for 10bpp modes
Ilia Mirkin [Thu, 23 Nov 2017 18:51:45 +0000 (13:51 -0500)]
util: fix MAKE_RGBA macro for 10bpp modes

We need to shift the values up, otherwise we'd end up with a negative
shift. This works for up-to 16-bit components, which is fine for now.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
4 years agoutil: add C8 format, support it with SMPTE pattern
Ilia Mirkin [Sun, 2 Jun 2019 21:51:08 +0000 (17:51 -0400)]
util: add C8 format, support it with SMPTE pattern

This also adds a helper to generate a color LUT, which has to be used in
conjunction with the C8 indexed format.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
4 years agotests/amdgpu/vcn: add VCN2.0 decode support
Leo Liu [Wed, 12 Dec 2018 15:35:45 +0000 (10:35 -0500)]
tests/amdgpu/vcn: add VCN2.0 decode support

With different register offsets from VCN1.0

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
4 years agolibdrm/amdgpu: add new vram type (GDDR6) for navi10
Tao Zhou [Thu, 15 Nov 2018 03:48:58 +0000 (11:48 +0800)]
libdrm/amdgpu: add new vram type (GDDR6) for navi10

AMDGPU_VRAM_TYPE_GDDR6 is a new vram type for navi10

Reviewed-by: Tim Writer <Tim.Writer@amd.com>
Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
4 years agolibdrm/amdgpu: add new member in drm_amdgpu_device_info for navi10
Hawking Zhang [Tue, 12 Jun 2018 10:08:39 +0000 (18:08 +0800)]
libdrm/amdgpu: add new member in drm_amdgpu_device_info for navi10

pa_sc_tile_steering_override is a new member introduced for gfx10

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
4 years agoamdgpu: add navi family id
Huang Rui [Thu, 28 Sep 2017 06:23:30 +0000 (14:23 +0800)]
amdgpu: add navi family id

Reviewed-by: Tim Writer <Tim.Writer@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
4 years agoenable syncobj test depending on capability
Chunming Zhou [Tue, 11 Jun 2019 13:55:33 +0000 (15:55 +0200)]
enable syncobj test depending on capability

Feature is controlled by DRM_CAP_SYNCOBJ_TIMELINE drm capability.

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
4 years agoupdate drm.h
Chunming Zhou [Wed, 22 May 2019 09:01:24 +0000 (17:01 +0800)]
update drm.h

   a) delta: only DRM_CAP_SYNCOBJ_TIMELINE
   b) Generated using make headers_install.
   c) Generated from origin/drm-misc-next commit 982c0500fd1a8012c31d3c9dd8de285129904656"

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Suggested-by: Michel Dänzer <michel@daenzer.net>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
4 years agoamdgpu: Add amdgpu_cs_syncobj_transfer to amdgpu-symbol-check
Michel Dänzer [Thu, 16 May 2019 12:43:22 +0000 (14:43 +0200)]
amdgpu: Add amdgpu_cs_syncobj_transfer to amdgpu-symbol-check

Fixes make check. Trivial.

4 years agoadd syncobj timeline tests v3
Chunming Zhou [Thu, 16 May 2019 08:07:14 +0000 (16:07 +0800)]
add syncobj timeline tests v3

v2: drop DRM_SYNCOBJ_CREATE_TYPE_TIMELINE, fix timeout calculation,
    fix some warnings
v3: add export/import and cpu signal testing cases

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agowrap transfer interfaces
Chunming Zhou [Thu, 16 May 2019 08:07:13 +0000 (16:07 +0800)]
wrap transfer interfaces

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agoexpose timeline signal/export/import interfaces v2
Chunming Zhou [Thu, 16 May 2019 08:07:12 +0000 (16:07 +0800)]
expose timeline signal/export/import interfaces v2

v2: adapt to new one transfer ioctl

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agoadd timeline signal/transfer ioctls v2
Chunming Zhou [Thu, 16 May 2019 08:07:11 +0000 (16:07 +0800)]
add timeline signal/transfer ioctls v2

v2: use one transfer ioctl

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agowrap syncobj timeline query/wait APIs for amdgpu v3
Chunming Zhou [Thu, 16 May 2019 08:07:10 +0000 (16:07 +0800)]
wrap syncobj timeline query/wait APIs for amdgpu v3

v2: symbos are stored in lexical order.
v3: drop export/import and extra query indirection

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agoadd timeline wait/query ioctl v2
Chunming Zhou [Thu, 16 May 2019 08:07:09 +0000 (16:07 +0800)]
add timeline wait/query ioctl v2

v2: drop export/import

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
4 years agoadd cs chunk for syncobj timeline
Chunming Zhou [Thu, 16 May 2019 08:07:08 +0000 (16:07 +0800)]
add cs chunk for syncobj timeline

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
5 years agoxf86drm: Fix possible memory leak with drmModeGetPropertyPtr()
Seung-Woo Kim [Mon, 29 Apr 2019 09:10:52 +0000 (18:10 +0900)]
xf86drm: Fix possible memory leak with drmModeGetPropertyPtr()

In drmModeGetPropertyPtr(), from upper error path, it calls free
but with just next error path, it does not call. Fix the possible
memory leak.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agotests/libkms-test-plane: fix possbile memory leak
Seung-Woo Kim [Thu, 25 Apr 2019 09:50:00 +0000 (18:50 +0900)]
tests/libkms-test-plane: fix possbile memory leak

The pointer p aquired with drmModeGetPlane() is not free in error
path. Fix possible memory leak by calling drmModeFreePlane() in
the error path.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
5 years agolibdrm: omap: Add DRM_RDWR flag to dmabuf export
Hemant Hariyani [Wed, 24 Apr 2019 17:08:41 +0000 (10:08 -0700)]
libdrm: omap: Add DRM_RDWR flag to dmabuf export

Allows mmap on dmabuf fd with MAP_SHARED and PROT_WRITE.

This fixes boot failures with Android (likely w/ closed source
user-space drivers) that were caused due to mmap() returning
error.

Cc: Sean Paul <seanpaul@chromium.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Marissa Wall <marissaw@google.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
[picked and updated commitmsg from http://git.ti.com/cgit/cgit.cgi/android/external-libdrm.git/]
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Signed-off-by: Alistair Strachan <astrachan@google.com>
[jstultz: Tweaked commit message]
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agolibdrm: reduce number of reallocations in drmModeAtomicAddProperty
Adrian Salido [Wed, 24 Apr 2019 17:08:40 +0000 (10:08 -0700)]
libdrm: reduce number of reallocations in drmModeAtomicAddProperty

When calling drmModeAtomicAddProperty allocation of memory
happens as needed in increments of 16 elements. This can be very
slow if there are multiple properties to be updated in an Atomic
Commit call.

Increase this to as many as can fit in a memory PAGE to avoid
having to reallocate memory too often.

Also this patch has a small one line perf tweak in
drmModeAtomicDuplicate() to only memcpy items to the cursor
position in order avoid copying the entire item array if its
mostly empty.

Cc: Sean Paul <seanpaul@chromium.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Marissa Wall <marissaw@google.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
[jstultz: Expanded commit message]
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agolibdrm: Avoid additional drm open close
Prabhanjan Kandula [Wed, 24 Apr 2019 17:08:39 +0000 (10:08 -0700)]
libdrm: Avoid additional drm open close

Avoid additional drm device open and close.

Cc: Sean Paul <seanpaul@chromium.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Marissa Wall <marissaw@google.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agolibdrm: amdgpu: Initialize unions with memset rather than "= {0}"
John Stultz [Wed, 24 Apr 2019 17:08:38 +0000 (10:08 -0700)]
libdrm: amdgpu: Initialize unions with memset rather than "= {0}"

Clang complains when initializing unions using "= {0}"
so instead use memset.

Cc: Sean Paul <seanpaul@chromium.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Marissa Wall <marissaw@google.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agolibdrm: Use mmap64 instead of __mmap2
Sean Paul [Wed, 24 Apr 2019 17:08:36 +0000 (10:08 -0700)]
libdrm: Use mmap64 instead of __mmap2

__mmap2 isn't supported on all platforms, mmap64 is the right way
to do this in android.

Also folds in a fix from Stéphane Marchesin <marcheu@chromium.org>

Cc: Sean Paul <seanpaul@chromium.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Marissa Wall <marissaw@google.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
[jstultz: Folded in Stéphane's fix]
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agolibdrm: Android.mk: Add minimal Android platform check
John Stultz [Wed, 24 Apr 2019 17:08:37 +0000 (10:08 -0700)]
libdrm: Android.mk: Add minimal Android platform check

Add a check to error out on Android version K(4.4) or
lower.

This is due to dependency added in a previous commit on mmap64,
which was introduced with Android L.

Cc: Sean Paul <seanpaul@chromium.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Marissa Wall <marissaw@google.com>
Suggested-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agoBump the version to 2.4.98
Emil Velikov [Fri, 19 Apr 2019 15:31:38 +0000 (16:31 +0100)]
Bump the version to 2.4.98

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoamdgpu: Add context priority override function.
Bas Nieuwenhuizen [Mon, 28 Jan 2019 21:20:20 +0000 (22:20 +0100)]
amdgpu: Add context priority override function.

This way we can override the priority of a single context using a
master fd.

Since we cannot usefully create an amdgpu device of a master fd
without the fd deduplication kicking in this takes a plain fd.

This can be used by e.g. radv to get high priority contexts using
a master fd from the primary node or a lease.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Andres Rodriguez <andresx7@gmail.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
5 years agotests/util: Add armada-drm driver
Lubomir Rintel [Sat, 23 Mar 2019 20:23:42 +0000 (21:23 +0100)]
tests/util: Add armada-drm driver

This makes the test utilities work with the Armada driver without the
necessity of using the -M argument.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoRevert "libdrm: Fix issue about differrent domainID but same BDF"
Emil Velikov [Wed, 17 Apr 2019 17:31:31 +0000 (18:31 +0100)]
Revert "libdrm: Fix issue about differrent domainID but same BDF"

This reverts commit 56c21f877bda7b8c62c3d7925b070b5113d807f2.

There were issues pointed out during review that were not addressed.
Would love to have this re-land, once those are addressed.

5 years agotests/modetest: add QCOM_COMPRESSED to supported modifiers list
Fritz Koenig [Fri, 1 Mar 2019 22:40:59 +0000 (14:40 -0800)]
tests/modetest: add QCOM_COMPRESSED to supported modifiers list

Signed-off-by: Fritz Koenig <frkoenig@google.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agofix various typos
Eric Engestrom [Wed, 19 Dec 2018 14:55:45 +0000 (14:55 +0000)]
fix various typos

Saw a couple of typos fixes in the patch DragonFlyBSD carries [1], so
I ran codespell (a spell checker for code) on the whole repo.

[1] https://github.com/DragonFlyBSD/DPorts/blob/master/graphics/libdrm/files/patch-xf86drm.c

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoamdgpu/tests: drop unused local vars
Eric Engestrom [Wed, 19 Dec 2018 16:23:35 +0000 (16:23 +0000)]
amdgpu/tests: drop unused local vars

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoamdgpu: Fix a structure initialization issue
Pan, Xinhui [Fri, 12 Apr 2019 05:42:01 +0000 (05:42 +0000)]
amdgpu: Fix a structure initialization issue

struct drmPciBusInfo has been aligned to 6 bytes. So memcmp will access
the last byte which is not initialized.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoheaders: Sync with drm-next
Ayan Halder [Wed, 10 Apr 2019 15:17:21 +0000 (15:17 +0000)]
headers: Sync with drm-next

Generated using make headers_install from the drm-next
tree - git://anongit.freedesktop.org/drm/drm
branch - drm-next
commit - 14d2bd53a47a7e1cb3e03d00a6b952734cf90f3f

The changes were as follows :-

core: (drm.h, drm_fourcc.h, drm_mode.h)
- Added 'struct drm_syncobj_transfer', 'struct drm_syncobj_timeline_wait' and 'struct drm_syncobj_timeline_array'
- Added various DRM_IOCTL_SYNCOBJ_ ioctls
- Added some new RGB and YUV formats
- Added 'DRM_FORMAT_MOD_VENDOR_ALLWINNER'
- Added 'SAMSUNG' and Arm's 'AFBC' and 'ALLWINNER' format modifiers
- Added 'struct drm_mode_rect'

i915:
- Added struct 'struct i915_user_extension' and various 'struct drm_i915_gem_context_'
- Added different modes of per-process Graphics Translation Table

Changes from v1:-
- Removed the changes to 'msm_drm.h' as it breaks the build for 'freedreno' platform.

Signed-off-by: Ayan Kumar halder <ayan.halder@arm.com>
Acked-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agodrm/amdgpu: support test mask
xinhui pan [Thu, 14 Mar 2019 08:39:39 +0000 (16:39 +0800)]
drm/amdgpu: support test mask

support per device test mask. Skip inject test on non-server card.

Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoamdgpu: add ras tests
xinhui pan [Fri, 1 Feb 2019 03:48:11 +0000 (11:48 +0800)]
amdgpu: add ras tests

Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoamdgpu: update amdgpu_drm.h from drm-next for 5.2
Alex Deucher [Thu, 4 Apr 2019 18:39:07 +0000 (13:39 -0500)]
amdgpu: update amdgpu_drm.h from drm-next for 5.2

From drm-next commit b4e4538a0ab5079ae5dc401970e11f0ff2ba13a7

Adds support for:
- RAS queries
- context priority updates
- CS chunks support for scheduled dependencies
- IB flag for GDS max wave id

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agovirtgpu: Update kernel header
Gurchetan Singh [Thu, 28 Feb 2019 00:52:37 +0000 (16:52 -0800)]
virtgpu: Update kernel header

Generated using make headers_install.

This brings in the in/out fence support for explicit
synchronization.

v2: don't use experimental kernel branch

Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agointel: sync i915_pciids.h with kernel
Anusha [Wed, 20 Mar 2019 22:00:06 +0000 (15:00 -0700)]
intel: sync i915_pciids.h with kernel

Add CML and EHL PCI IDs, and one more for ICL. This is in sync with
kernel header as of b024ab9b2d3a ("drm/i915/bios: iterate over child
devices to initialize ddi_port_info")

Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
5 years agotests/amdgpu: minor fix for dispatch/draw test
Cui, Flora [Wed, 20 Mar 2019 02:46:56 +0000 (02:46 +0000)]
tests/amdgpu: minor fix for dispatch/draw test

1. clear cmd buffer
2. make amdgpu_memcpy_dispatch_test static
3. tab/space fix

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Flora Cui <flora.cui@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agotests/amdgpu: add memcpy draw test
Cui, Flora [Fri, 15 Mar 2019 08:51:21 +0000 (08:51 +0000)]
tests/amdgpu: add memcpy draw test

add memcpy draw test for gfx9

Signed-off-by: Flora Cui <flora.cui@amd.com>
Tested-by: Rui Teng <rui.teng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agotests/amdgpu: add memset draw test
Cui, Flora [Fri, 15 Mar 2019 08:51:18 +0000 (08:51 +0000)]
tests/amdgpu: add memset draw test

add memset draw test for gfx9

Signed-off-by: Flora Cui <flora.cui@amd.com>
Tested-by: Rui Teng <rui.teng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agotests/amdgpu: add memcpy dispatch test
Cui, Flora [Fri, 15 Mar 2019 08:51:13 +0000 (08:51 +0000)]
tests/amdgpu: add memcpy dispatch test

add memcpy dispatch test for gfx9

Signed-off-by: Flora Cui <flora.cui@amd.com>
Tested-by: Rui Teng <rui.teng@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agotests/amdgpu: add memset dispatch test
Cui, Flora [Fri, 15 Mar 2019 08:50:54 +0000 (08:50 +0000)]
tests/amdgpu: add memset dispatch test

add memset dispatch test for gfx9
v2: disable dispatch test for other ASICs

Signed-off-by: Flora Cui <flora.cui@amd.com>
Tested-by: Rui Teng <rui.teng@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agotests/amdgpu: add deadlock test for sdma
Cui, Flora [Wed, 6 Mar 2019 06:37:13 +0000 (06:37 +0000)]
tests/amdgpu: add deadlock test for sdma

deadlock test for sdma will cause gpu recoverty.
disable the test for now until GPU reset recovery could survive at least
1000 times test.

v2: add modprobe parameter

Reviewed-and-tested-by: Evan Quan <evan.quan@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Flora Cui <flora.cui@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoamdgpu: add marketing name for AMD Radeon VII
Alex Deucher [Tue, 5 Mar 2019 16:14:31 +0000 (11:14 -0500)]
amdgpu: add marketing name for AMD Radeon VII

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoxf86drm: Fix segmentation fault while parsing device info
Andreas Baierl [Mon, 11 Mar 2019 15:04:08 +0000 (16:04 +0100)]
xf86drm: Fix segmentation fault while parsing device info

This fixes a bug, which was introduced with commit ee798b98
"xf85drm: de-duplicate drmParse{Platform.Host1x}{Bus,Device}Info".
where accessing *compatible[i] with i>0 results in a segfault.

Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Fixes: ee798b98479709acdd8d "xf85drm: de-duplicate drmParse{Platform.Host1x}{Bus,Device}Info"
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
[Eric: add the same fix to the free() below]
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agolibkms: update list of intel_drivers for Android build
Tapani Pälli [Tue, 18 Dec 2018 06:13:53 +0000 (08:13 +0200)]
libkms: update list of intel_drivers for Android build

Add new iris driver, remove deprecated ilo driver.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agoconfigure.ac fix build error for config.h in autotools
Seung-Woo Kim [Tue, 26 Feb 2019 01:00:56 +0000 (10:00 +0900)]
configure.ac fix build error for config.h in autotools

After the commit 0926f0af54d6 ("meson,configure: include config.h
automatically"), there is build error for autotools because
config.h is not included. Fix the error by adding "-include
config.h" to CPPFLAGS instead of CFLAGS from configure.ac.

Reference: https://bugs.freedesktop.org/show_bug.cgi?id=106561
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Fixes: 0926f0af54d654b1a958 "meson,configure: include config.h automatically"

5 years agolibdrm: Fix issue about differrent domainID but same BDF
Emily Deng [Thu, 14 Feb 2019 07:53:38 +0000 (15:53 +0800)]
libdrm: Fix issue about differrent domainID but same BDF

For multiple GPUs which has the same BDF, but has different domain ID,
the drmOpenByBusid will return the wrong fd when startx.

The reproduce sequence as below:
1. Call drmOpenByBusid to open Card0, then will return the right fd0, and the
fd0 is master privilege;
2. Call drmOpenByBusid to open Card1. In function drmOpenByBusid, it will
open Card0 first, this time, the fd1 for opening Card0 is not master
privilege, and will call drmSetInterfaceVersion to identify the
domain ID feature, as the fd1 is not master privilege, then drmSetInterfaceVersion
will fail, and then won't compare domain ID, then return the wrong fd for Card1.

Solution:
First loop search the best match fd about drm 1.4.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Emily Deng <Emily.Deng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agogitlab-ci: fix archlinux builds
Eric Engestrom [Tue, 19 Feb 2019 11:49:28 +0000 (11:49 +0000)]
gitlab-ci: fix archlinux builds

base/archlinux has been replaced with archlinux/base, which is
maintained directly by the archlinux community.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agofreedreno: revert bad freedreno/atomic_ops commits
Eric Engestrom [Tue, 19 Feb 2019 09:39:43 +0000 (09:39 +0000)]
freedreno: revert bad freedreno/atomic_ops commits

This reverts 6d2379857b6fccc1cade "xf86atomic: #undef internal define"
and b541d21a0a908bf98d44 "freedreno: remove always-defined #ifdef".

I didn't realise at the time that freedreno/freedreno_ringbuffer.h gets
installed, and then used by Mesa for instance. These two commits were
fine in libdrm, but broke Mesa which needs to use struct fd_ringbuffer
but doesn't need to access ::refcnt. The hack that I removed serves to
keep the struct at the correct size while only exposing the ::refcnt
member within libdrm.

Fixes: 6d2379857b6fccc1cade "xf86atomic: #undef internal define"
Fixes: b541d21a0a908bf98d44 "freedreno: remove always-defined #ifdef"
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agoxf86drm: fix return type for drmIsMaster()
Eric Engestrom [Fri, 8 Feb 2019 14:46:07 +0000 (14:46 +0000)]
xf86drm: fix return type for drmIsMaster()

Xserver has struct members named `bool`, which means the last commit
breaks its build with errors like this:

  error: two or more data types in declaration specifiers
  Bool bool;
       ^

Fix this by making it return a 0/1 integer, with the same semantic as
the boolean it was before.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=109587
Fixes: 17dfe3ac93217b43f93b "xf86drm: Add drmIsMaster()"
Cc: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoxf86drm: Add drmIsMaster()
Christopher James Halse Rogers [Wed, 23 Jan 2019 04:38:45 +0000 (15:38 +1100)]
xf86drm: Add drmIsMaster()

We can't use drmSetMaster to query whether or not a drm fd is master
because it requires CAP_SYS_ADMIN, even if the fd *is* a master fd.

Pick DRM_IOCTL_MODE_ATTACHMODE as a long-deprecated ioctl that is
DRM_MASTER but not DRM_ROOT_ONLY as the probe by which we can detect
whether or not the fd is master.

This is useful for code that might get master by open()ing the drm device
while no other master exists, but can't call drmSetMaster itself because
it's not running as root or is in a container, where container-root isn't
real-root.

v2: Use the AUTH_MAGIC request rather than MODE_ATTACHMODE, as it's more
    clearly related to master status.

v3: [Emil] Don't expose internals, check for -EACCES.

Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> (v2)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agointel: sync i915_pciids.h with kernel
Rodrigo Vivi [Sat, 2 Feb 2019 07:43:01 +0000 (23:43 -0800)]
intel: sync i915_pciids.h with kernel

Straight copy from the kernel file.

Add more PCI Device IDs for Coffee Lake, Ice Lake,
and Amber Lake. It also include a reorg on Whiskey Lake IDs.

Align with kernel commits:

5e0f5a58b167 ("drm/i915/cfl: Adding another PCI Device ID.")
03ca3cf8e9aa ("drm/i915/icl: Adding few more device IDs for Ice Lake")
c0c46ca461f1 ("drm/i915/aml: Add new Amber Lake PCI ID")
c1c8f6fa731b ("drm/i915: Redefine some Whiskey Lake SKUs")

Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
5 years agoxf85drm: de-duplicate drmParse{Platform.Host1x}{Bus,Device}Info
Emil Velikov [Wed, 23 Jan 2019 10:39:12 +0000 (10:39 +0000)]
xf85drm: de-duplicate drmParse{Platform.Host1x}{Bus,Device}Info

The functions are virtually identical, fold them up.

v2: foo -> tmp_name (Eric)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agoxf86drm: fallback to MODALIAS for OF less platform devices
Emil Velikov [Wed, 23 Jan 2019 09:44:07 +0000 (09:44 +0000)]
xf86drm: fallback to MODALIAS for OF less platform devices

Some devices can lack OF data or it may not be available in the uevent
file. Fallback to the MODALIAS data in those cases.

We strip any leading "MODALIAS=.*:" thus the resulting information is
compatible with existing code in Mesa.

v2: foo -> tmp_name

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Lucas Stach <l.stach@pengutronix.de> (v1)
5 years agoamdgpu: add some raven marketing names
Alex Deucher [Wed, 30 Jan 2019 16:32:03 +0000 (11:32 -0500)]
amdgpu: add some raven marketing names

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoBump the version to 2.4.97
Marek Olšák [Tue, 22 Jan 2019 16:18:47 +0000 (11:18 -0500)]
Bump the version to 2.4.97

5 years agoamdgpu: add a faster BO list API
Marek Olšák [Mon, 7 Jan 2019 18:28:12 +0000 (13:28 -0500)]
amdgpu: add a faster BO list API

Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
5 years agoamdgpu: update amdgpu_drm.h
Marek Olšák [Tue, 15 Jan 2019 19:15:22 +0000 (14:15 -0500)]
amdgpu: update amdgpu_drm.h

it's in kernel 5.0

Reviewed-by: Christian König <christian.koenig@amd.com>
5 years agoamdgpu: update to latest marketing names from 18.50
Alex Deucher [Fri, 14 Dec 2018 20:39:11 +0000 (15:39 -0500)]
amdgpu: update to latest marketing names from 18.50

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoREADME: reflow the project description to improve readability
Eric Engestrom [Wed, 7 Nov 2018 16:15:32 +0000 (16:15 +0000)]
README: reflow the project description to improve readability

Also, move the sentence about "who would use libdrm" into its own paragraph,
as it is something people discovering libdrm will want to know.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoxf86atomic: #undef internal define
Eric Engestrom [Wed, 7 Nov 2018 17:57:02 +0000 (17:57 +0000)]
xf86atomic: #undef internal define

Thanks to the #error just above, any file including this header can only
see one state for this macro: defined, with the value `1`.
Let's just #undef it once we're done using it in here so that other
files don't misconstrue any meaning to it.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agofreedreno: remove always-defined #ifdef
Eric Engestrom [Wed, 7 Nov 2018 17:23:55 +0000 (17:23 +0000)]
freedreno: remove always-defined #ifdef

While at it, let's include xf86atomic.h explicitly, instead of relying
on some other file accidentally including it before including this file.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
5 years agoandroid: Fix 32-bit app crashing in 64-bit Android
Mauro Rossi [Tue, 11 Dec 2018 22:22:35 +0000 (23:22 +0100)]
android: Fix 32-bit app crashing in 64-bit Android

Seemingly the 64-bit int is always aligned to 8 in LP64.
But this is not hold in LP32.

Consequently sizeof(gralloc_drm_handle_t) are different
between LP64 (which is 18 ints) and LP32 (which is 16 ints).
As a result, 32-bit apps will crash in 64-bit OS since the
checking handle->base.numInts != GRALLOC_GBM_HANDLE_NUM_INTS
is true.

Fix it by always aligning 64-bit int to 8. Besides, to avoid
additional padding, just exchange the order of data_owner
and modifier. It aligns modifier to 8 natually.
This makes gralloc_drm_handle_t fit in 16 ints perfectly.

(v2) gralloc_drm_handle.h patch now applied in gralloc_handle.h
     and GRALLOC_HANDLE_VERSION updated to 4

Reported-by: Mauro Rossi <issor.oruam@gmail.com>
Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Reviewed-by: Robert Foss <robert.foss@collabora.com>
5 years agogitignore: add _build
Lucas De Marchi [Thu, 27 Sep 2018 19:09:31 +0000 (12:09 -0700)]
gitignore: add _build

This is the directory used by meson/autotools (at least in the
.gitlab-ci configuration) so ignore the whole dir.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
5 years agogitignore: sort file
Lucas De Marchi [Thu, 27 Sep 2018 19:08:22 +0000 (12:08 -0700)]
gitignore: sort file

LANG=C sort -u .gitignore | sponge .gitignore

This way it's easier to keep track of the entries.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
5 years agotests/amdgpu/vcn: fix the nop command in IBs
Leo Liu [Tue, 11 Dec 2018 20:52:58 +0000 (15:52 -0500)]
tests/amdgpu/vcn: fix the nop command in IBs

Just make them properly i.e. put 0 to the Nop reg

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
5 years agolibdrm: Use DRM_IOCTL_GET_PCIINFO on DragonFly
François Tigeot [Wed, 12 Dec 2018 19:48:36 +0000 (20:48 +0100)]
libdrm: Use DRM_IOCTL_GET_PCIINFO on DragonFly

It is a cleaner and less fragile way to get PCI IDs than the one
currently used by local DPorts patches.

Signed-off-by: François Tigeot <ftigeot@wolfpond.org>
5 years agoxf86drm: implement drmParseSubsystemType for DragonFly
François Tigeot [Wed, 12 Dec 2018 19:48:35 +0000 (20:48 +0100)]
xf86drm: implement drmParseSubsystemType for DragonFly

Like on OpenBSD, the DragonFly BSD kernel only contains
pci drm drivers.

Signed-off-by: François Tigeot <ftigeot@wolfpond.org>
5 years agoamdgpu/test: Enable deadlock test for CI family (gfx7)
Andrey Grodzovsky [Tue, 11 Dec 2018 20:10:10 +0000 (15:10 -0500)]
amdgpu/test: Enable deadlock test for CI family (gfx7)

I retested GPU recovery with  Bonaire ASIC and it works.

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
5 years agoamdgpu: add VM test to exercise max/min address space
Christian König [Thu, 25 Oct 2018 14:32:39 +0000 (16:32 +0200)]
amdgpu: add VM test to exercise max/min address space

Make sure the kernel doesn't crash if we map something at the minimum/maximum address.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
5 years agodrm: Attempt to parse SPI devices as platform bus devices.
Eric Anholt [Fri, 16 Nov 2018 01:52:19 +0000 (17:52 -0800)]
drm: Attempt to parse SPI devices as platform bus devices.

For ARM systems with tinydrm displays attached to SPI, the bus name is
/spi but we have platform device info for the rest.  Fixes
eglInitialize() failures on hx8357d since the EGL_EXT_device_drm
changes.

Acked-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agoAvoid hardcoded strlens in drmParseSubsystemType().
Eric Anholt [Fri, 16 Nov 2018 01:48:53 +0000 (17:48 -0800)]
Avoid hardcoded strlens in drmParseSubsystemType().

Having people count characters is error-prone, when we could just have
a computer do it.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
5 years agotests: skip drmdevice test if the machine doesn't have any drm device
Eric Engestrom [Fri, 9 Nov 2018 19:00:35 +0000 (19:00 +0000)]
tests: skip drmdevice test if the machine doesn't have any drm device

Error message was invalid too, negative values aren't the number of
devices, they're errno error codes.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
5 years agomeson: fix typo in compiler flag
Eric Engestrom [Wed, 7 Nov 2018 16:50:06 +0000 (16:50 +0000)]
meson: fix typo in compiler flag

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
5 years agoxf86drmHash: remove unused loop variable
Eric Engestrom [Wed, 7 Nov 2018 14:30:29 +0000 (14:30 +0000)]
xf86drmHash: remove unused loop variable

Reported-by: Jan Vesely <jano.vesely@gmail.com>
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
5 years agoamdgpu/test: Disable deadlock tests for all non gfx8/9 ASICs.
Andrey Grodzovsky [Fri, 2 Nov 2018 16:11:49 +0000 (12:11 -0400)]
amdgpu/test: Disable deadlock tests for all non gfx8/9 ASICs.

Since only for those ASICs gpu reset is enabled by deafult.
Also update disable message and fix identation .

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
5 years agoamdgpu/test: Add illegal register and memory access test v2
Andrey Grodzovsky [Wed, 31 Oct 2018 18:01:44 +0000 (14:01 -0400)]
amdgpu/test: Add illegal register and memory access test v2

Illegal access will cause CP hang followed by job timeout and
recovery kicking in.
Also, disable the suite for all APU ASICs until GPU
reset issues for them will be resolved and GPU reset recovery
will be enabled by default.

v2:
Add KV to deasbled APUs list and add comments regarding
necessary kernel amdgpu paramteres to run the tests.

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
5 years agodoc: Rename README&CONTRIBUTING to .rst
Daniel Vetter [Tue, 4 Sep 2018 12:47:31 +0000 (14:47 +0200)]
doc: Rename README&CONTRIBUTING to .rst

Looks much neater on the gitlab UI, e.g. on my personal libdrm fork:

https://gitlab.freedesktop.org/danvet/drm

Acked-by: Eric Engestrom <eric.engestrom@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
5 years agoBump to version 2.4.96
Rob Clark [Tue, 16 Oct 2018 14:32:43 +0000 (10:32 -0400)]
Bump to version 2.4.96

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: fix c90 warning
Rob Clark [Sun, 14 Oct 2018 15:23:17 +0000 (11:23 -0400)]
freedreno/msm: fix c90 warning

Wasn't really sure how to switch the silly -Wdeclaration-after-statement
flag off on a per directory basis.  So make the code uglier instead.

5 years agofreedreno/kgsl: fix build
Rob Clark [Sun, 14 Oct 2018 15:23:03 +0000 (11:23 -0400)]
freedreno/kgsl: fix build

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: handle ring-reloc to other stateobjs
Rob Clark [Thu, 11 Oct 2018 13:55:03 +0000 (09:55 -0400)]
freedreno/msm: handle ring-reloc to other stateobjs

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: simplify msm_ringbuffer_flush()
Rob Clark [Thu, 11 Oct 2018 13:43:58 +0000 (09:43 -0400)]
freedreno/msm: simplify msm_ringbuffer_flush()

Now that it doesn't have to deal with ringmarkers we can simplify the
reloc handling.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: use hashtable to track submit.cmds table
Rob Clark [Wed, 10 Oct 2018 16:51:33 +0000 (12:51 -0400)]
freedreno/msm: use hashtable to track submit.cmds table

With streaming stateobjs to upload uniforms, the submit.cmds table gets
much larger, and iterating over it for each ring to ring reloc starts
getting expensive.

TODO if we have flag to pass when constructing parent rb, we could
avoid dynamically allocating this and bo_table in get_cmd() or bo2idx

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: simplify emit_reloc_ring() vfunc
Rob Clark [Wed, 10 Oct 2018 15:10:39 +0000 (11:10 -0400)]
freedreno/msm: simplify emit_reloc_ring() vfunc

Now that it doesn't have to deal with the ringmarker case, we can make
some simplifications.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: remove reset of linked rings
Rob Clark [Thu, 11 Oct 2018 17:51:14 +0000 (13:51 -0400)]
freedreno/msm: remove reset of linked rings

The msm_cmd isn't refcount'd, so with stateobj rb's that have
independent lifecycle, this is no longer a safe thing to do.
Really, now that there is a bo-cache for rb's, fd_ringbuffer_reset()
should be deprecated because it adds a bunch of pointless complexity.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno: remove deprecated ringmarker API
Rob Clark [Wed, 10 Oct 2018 14:47:17 +0000 (10:47 -0400)]
freedreno: remove deprecated ringmarker API

It's usage in mesa was removed more than two years ago.  And it stands
in the way of some optimizations needed to reduce the overhead of hw
stateobjs (ie. CP_SET_DRAW_STATE, where the # of cmds in the submit
ioctl goes up significantly).

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno/msm: support suballocation for stateobj rb's
Rob Clark [Mon, 8 Oct 2018 19:33:02 +0000 (15:33 -0400)]
freedreno/msm: support suballocation for stateobj rb's

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno: add flags param for rb creation
Rob Clark [Wed, 10 Oct 2018 12:37:23 +0000 (08:37 -0400)]
freedreno: add flags param for rb creation

For now, we want a way for gallium to be able to provide hints for the
upcoming rb suballocation.  But could be useful for other things down
the road.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
5 years agofreedreno: expose refcnt'ing on ringbuffers
Rob Clark [Tue, 9 Oct 2018 19:33:39 +0000 (15:33 -0400)]
freedreno: expose refcnt'ing on ringbuffers

Move this out of msm_ringbuffer backend so that the gallium driver can
refcnt rb's

Signed-off-by: Rob Clark <robclark@freedesktop.org>