summaryrefslogtreecommitdiffstats
path: root/meta-uhmi/meta-rvgpu/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu/0001-Remove-some-rvgpu-command-options.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-uhmi/meta-rvgpu/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu/0001-Remove-some-rvgpu-command-options.patch')
-rw-r--r--meta-uhmi/meta-rvgpu/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu/0001-Remove-some-rvgpu-command-options.patch160
1 files changed, 160 insertions, 0 deletions
diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu/0001-Remove-some-rvgpu-command-options.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu/0001-Remove-some-rvgpu-command-options.patch
new file mode 100644
index 00000000..4548c53f
--- /dev/null
+++ b/meta-uhmi/meta-rvgpu/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu/0001-Remove-some-rvgpu-command-options.patch
@@ -0,0 +1,160 @@
+From 0fc1cf03f76d21cec5b859ff46bee146cd4e52f7 Mon Sep 17 00:00:00 2001
+From: murakami <murakami.kenta002@jp.panasonic.jp>
+Date: Fri, 28 Jul 2023 12:09:35 +0900
+Subject: [PATCH 1/2] Remove some rvgpu command options
+
+Remove vsync and card_index option supports from remote-virtio-gpu,
+because the kernel needs to be patched to run those options in
+rvgpu-proxy and rvgpu-renderer.
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ include/rvgpu-proxy/gpu/rvgpu-gpu-device.h | 1 -
+ src/rvgpu-proxy/gpu/rvgpu-gpu-device.c | 3 ---
+ src/rvgpu-proxy/rvgpu-proxy.c | 27 ++--------------------
+ src/rvgpu-renderer/rvgpu-renderer.c | 10 +++-----
+ 4 files changed, 5 insertions(+), 36 deletions(-)
+
+diff --git a/include/rvgpu-proxy/gpu/rvgpu-gpu-device.h b/include/rvgpu-proxy/gpu/rvgpu-gpu-device.h
+index eb34b6a..76d747a 100644
+--- a/include/rvgpu-proxy/gpu/rvgpu-gpu-device.h
++++ b/include/rvgpu-proxy/gpu/rvgpu-gpu-device.h
+@@ -35,7 +35,6 @@ struct gpu_device;
+
+ struct gpu_device_params {
+ bool split_resources;
+- int card_index;
+ unsigned int num_scanouts;
+ unsigned int mem_limit;
+ unsigned long framerate;
+diff --git a/src/rvgpu-proxy/gpu/rvgpu-gpu-device.c b/src/rvgpu-proxy/gpu/rvgpu-gpu-device.c
+index 947e81a..71f62ca 100644
+--- a/src/rvgpu-proxy/gpu/rvgpu-gpu-device.c
++++ b/src/rvgpu-proxy/gpu/rvgpu-gpu-device.c
+@@ -528,7 +528,6 @@ struct gpu_device *gpu_device_init(int lo_fd, int efd, uint32_t cidx,
+ if (capset != -1)
+ gpu_capset_init(g, capset);
+
+- info.card_index = params->card_index;
+ info.config = (__u8 *)&g->config;
+ info.config_kick = g->config_fd;
+
+@@ -939,8 +938,6 @@ static void gpu_device_trigger_vsync(struct gpu_device *g,
+ return;
+
+ hdr->flags |= VIRTIO_GPU_FLAG_VSYNC;
+- /* use padding bytes to pass scanout_id to virtio-gpu driver */
+- hdr->padding = g->scan_id;
+ add_resp(g, hdr, req);
+
+ if ((!vsync_ts.tv_sec) && (!vsync_ts.tv_nsec)) {
+diff --git a/src/rvgpu-proxy/rvgpu-proxy.c b/src/rvgpu-proxy/rvgpu-proxy.c
+index 6ff4e19..d082b72 100644
+--- a/src/rvgpu-proxy/rvgpu-proxy.c
++++ b/src/rvgpu-proxy/rvgpu-proxy.c
+@@ -47,7 +47,6 @@ static void usage(void)
+ info("\t-s scanout\tspecify scanout in form WxH@X,Y (default: %ux%u@0,0)\n",
+ DEFAULT_WIDTH, DEFAULT_HEIGHT);
+ info("\t-f rate\t\tspecify virtual framerate (default: disabled)\n");
+- info("\t-i index\tspecify index 'n' for device /dev/dri/card<n>\n");
+ info("\t-n\t\tserver:port for connecting (max 4 hosts, default: %s:%s)\n",
+ RVGPU_DEFAULT_HOSTNAME, RVGPU_DEFAULT_PORT);
+ info("\t-h\t\tshow this message\n");
+@@ -79,7 +78,6 @@ int main(int argc, char **argv)
+ struct gpu_device_params params = {
+ .framerate = 0u,
+ .mem_limit = VMEM_DEFAULT_MB,
+- .card_index = -1,
+ .num_scanouts = 0u,
+ .dpys = { { .r = { .x = 0,
+ .y = 0,
+@@ -97,38 +95,17 @@ int main(int argc, char **argv)
+ };
+
+ pthread_t input_thread;
+- char path[64];
+ FILE *oomFile;
+- int lo_fd, epoll_fd, res, opt, capset = -1;
++ int lo_fd, epoll_fd, opt, capset = -1;
+ char *ip, *port, *errstr = NULL;
+
+- while ((opt = getopt(argc, argv, "hi:n:M:c:R:f:s:")) != -1) {
++ while ((opt = getopt(argc, argv, "h:n:M:c:R:f:s:")) != -1) {
+ switch (opt) {
+ case 'c':
+ capset = open(optarg, O_RDONLY);
+ if (capset == -1)
+ err(1, "open %s", optarg);
+ break;
+- case 'i':
+- params.card_index =
+- (int)sanity_strtonum(optarg, CARD_INDEX_MIN,
+- CARD_INDEX_MAX - 1,
+- &errstr);
+- if (errstr != NULL) {
+- warnx("Card index should be in [%u..%u]\n",
+- CARD_INDEX_MIN, CARD_INDEX_MAX - 1);
+- errx(1, "Invalid card index %s:%s", optarg,
+- errstr);
+- }
+-
+- snprintf(path, sizeof(path), "/dev/dri/card%d",
+- params.card_index);
+- res = access(path, F_OK);
+- if (res == 0)
+- errx(1, "device %s exists", path);
+- else if (errno != ENOENT)
+- err(1, "error while checking device %s", path);
+- break;
+ case 'M':
+ params.mem_limit = (unsigned int)sanity_strtonum(
+ optarg, VMEM_MIN_MB, VMEM_MAX_MB, &errstr);
+diff --git a/src/rvgpu-renderer/rvgpu-renderer.c b/src/rvgpu-renderer/rvgpu-renderer.c
+index 7166fb9..3e74289 100644
+--- a/src/rvgpu-renderer/rvgpu-renderer.c
++++ b/src/rvgpu-renderer/rvgpu-renderer.c
+@@ -52,7 +52,6 @@ static void usage(void)
+ info("\t-f\t\tRun in fullscreen mode\n");
+ info("\t-p port\t\tport for listening (default: %u)\n",
+ RVGPU_DEFAULT_PORT);
+- info("\t-v\t\tRun in vsync mode (eglSwapInterval 1)\n");
+ info("\t-h\t\tShow this message\n");
+
+ info("\nNote:\n");
+@@ -185,12 +184,12 @@ int main(int argc, char **argv)
+ unsigned int res_id, scanout;
+ uint16_t port_nr = RVGPU_DEFAULT_PORT;
+ FILE *input_stream = stdout;
+- bool fullscreen = false, vsync = false, translucent = false,
++ bool fullscreen = false, translucent = false,
+ user_specified_scanouts = false;
+
+ memset(sp, 0, sizeof(sp));
+
+- while ((opt = getopt(argc, argv, "afhvi:c:s:S:b:B:p:g:")) != -1) {
++ while ((opt = getopt(argc, argv, "afhi:c:s:S:b:B:p:g:")) != -1) {
+ switch (opt) {
+ case 'a':
+ translucent = true;
+@@ -269,9 +268,6 @@ int main(int argc, char **argv)
+ errstr);
+ }
+ break;
+- case 'v':
+- vsync = true;
+- break;
+ case 'h':
+ usage();
+ exit(EXIT_SUCCESS);
+@@ -309,7 +305,7 @@ int main(int argc, char **argv)
+ }
+
+ while ((res_id = rvgpu_pr_dispatch(pr))) {
+- rvgpu_egl_drawall(egl, res_id, vsync);
++ rvgpu_egl_drawall(egl, res_id, false);
+ }
+
+ if (pp.capset)
+--
+2.17.1
+