From 848b49b288fc2fa942418d12829db2e559ad4916 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Fri, 23 Dec 2016 20:33:10 +0100 Subject: gallium: add renderonly library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This a very lightweight library to add basic support for renderonly GPUs. A kms gallium driver must specify how a renderonly_scanout objects gets created. Also it must provide file handles to the used kms device and the used gpu device. This could look like: struct renderonly ro = { .create_for_resource = renderonly_create_gpu_import_for_resource, .kms_fd = fd, .gpu_fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC) }; The renderonly_scanout object exits for two reasons: - Do any special treatment for a scanout resource like importing the GPU resource into the scanout hw. - Make it easier for a gallium driver to detect if anything special needs to be done in flush_resource(..) like a resolve to linear. A GPU gallium driver which gets used as renderonly GPU needs to be aware of the renderonly library. This library will likely break android support and hopefully will get replaced with a better solution based on gbm2. Changes from V1 -> V2: - reworked the lifecycle of renderonly object (suggested by Nicolai Hähnle) - killed the midlayer (suggested by Thierry Reding) - made the API more explicit regarding gpu and kms fd's - added some docs Signed-off-by: Christian Gmeiner Acked-by: Emil Velikov Tested-by: Alexandre Courbot --- src/gallium/auxiliary/Makefile.sources | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/gallium/auxiliary/Makefile.sources') diff --git a/src/gallium/auxiliary/Makefile.sources b/src/gallium/auxiliary/Makefile.sources index 5d4fe30e4f1..8d3e4a95c66 100644 --- a/src/gallium/auxiliary/Makefile.sources +++ b/src/gallium/auxiliary/Makefile.sources @@ -435,3 +435,7 @@ GALLIVM_SOURCES := \ draw/draw_llvm_sample.c \ draw/draw_pt_fetch_shade_pipeline_llvm.c \ draw/draw_vs_llvm.c + +RENDERONLY_SOURCES := \ + renderonly/renderonly.c \ + renderonly/renderonly.h -- cgit v1.2.3