virglrenderer merge requestshttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests2023-09-26T08:33:27Zhttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/838virgl: add support for hardware video acceleration2023-09-26T08:33:27ZFeng Jiangvirgl: add support for hardware video accelerationThis function is implemented based on libva and currently supports H.264 and H.265 decoding, and will gradually support encoding and other profiles in the future.
Mesa on the guest side: https://gitlab.freedesktop.org/mesa/mesa/-/merge_...This function is implemented based on libva and currently supports H.264 and H.265 decoding, and will gradually support encoding and other profiles in the future.
Mesa on the guest side: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17157
I played the following files using MPV player(--hwdec=auto/no):
| File | Desc. |
|------|-------|
| bbb_sunflower_1080p_60fps_normal.mp4 | H.264+AC3+MP3, 1920x1080, 60fps, 339MB |
| bbb_sunflower_2160p_60fps_normal.mp4 | H.264+AC3+MP3, 3840x2160, 60fps, 642MB |
| caminandes_llamigos_1080p_hevc.mp4 | H.265+AAC, 1920x1080, 24fps, 27MB |
Here are the test results(use mesa-20.0.8):
On x86_64 (Intel i5-9500 + AMD Radeon RX550), the CPU usage:
| | software decoding | hardware decoding |
|--|-------------------|-------------------|
| H.264/1080p@60fps | 65.0% | 17.3% |
| H.264/4K@60fps | 108.0% | 17.6% |
| H.265/1080p@24fps | 42.6% | 9.5% |
On aarch64 (Kunpeng-920 + AMD Radeon RX550), the CPU usage:
| | software decoding | hardware decoding |
|--|-------------------|-------------------|
| H.264/1080p@60fps | 76.0% | 6.7% |
| H.264/4K@60fps | 321.0% | 8.4% |
| H.265/1080p@24fps | 63.7% | 4.1% |
Signed-off-by: Feng Jiang [jiangfeng@kylinos.cn](mailto:jiangfeng@kylinos.cn)Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1244vrend: Handle and report TEXTURE_MIRROR_CLAMP correctly2023-09-25T09:41:12ZGert Wollnyvrend: Handle and report TEXTURE_MIRROR_CLAMP correctlyThis fixes a few issues on Intel hosts.
Guest side patch: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25343This fixes a few issues on Intel hosts.
Guest side patch: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25343Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1245vrend_renderer: add missing message for error2023-09-22T10:39:00ZFilip Gawinvrend_renderer: add missing message for errorMarge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1237renderer: Separate partial shader initialization from the shader object2023-09-22T09:03:50ZCorentin Noëlrenderer: Separate partial shader initialization from the shader objectAllows to avoid memory allocation when there is no partial shader sent.Allows to avoid memory allocation when there is no partial shader sent.Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1241ci: Uprev Mesa2023-09-22T08:36:25ZGraphics CI botci: Uprev MesaMarge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1243vrend/decode: refactor parameters check in create_shader2023-09-20T13:40:03ZFilip Gawinvrend/decode: refactor parameters check in create_shaderMarge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1242resource: virgl_resource_create_from_pipe always take the ownership of the pi...2023-09-19T11:29:28ZCorentin Noëlresource: virgl_resource_create_from_pipe always take the ownership of the pipe_resourceMake the failing case also decrease the reference count of the pipe_resource.
This allows consumers to know that the pipe_resource is actually given away.Make the failing case also decrease the reference count of the pipe_resource.
This allows consumers to know that the pipe_resource is actually given away.Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1232vrend/decode: refactor parameters check in create_vertex_elements2023-09-19T06:57:05ZFilip Gawinvrend/decode: refactor parameters check in create_vertex_elementsCurrently I'm not sure if I should provide unique Vertex Elements (or it's enough for testing decoding).
Edit: Yeah, seems EINVAL is due external cause.Currently I'm not sure if I should provide unique Vertex Elements (or it's enough for testing decoding).
Edit: Yeah, seems EINVAL is due external cause.Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1239vkr: validate queueCount at device creation2023-09-18T23:32:32ZRyan Nephvkr: validate queueCount at device creationPre-caches QueueFamilyProperties at physical device enumeration and validates queueCount during VkCreateDevice().
Subsequent `vkGetPhysicalDeviceQueueFamilyProperties()` use the cached data.
(moved from guest-side: https://gitlab.freed...Pre-caches QueueFamilyProperties at physical device enumeration and validates queueCount during VkCreateDevice().
Subsequent `vkGetPhysicalDeviceQueueFamilyProperties()` use the cached data.
(moved from guest-side: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25255)
Ran a short local sanity check on 9th-gen intel (anv) via vtest:
```
deqp-vk -n dEQP-VK.*queue*
Test run totals:
Passed: 16664/40187 (41.5%)
Failed: 0/40187 (0.0%)
Not supported: 23523/40187 (58.5%)
Warnings: 0/40187 (0.0%)
Waived: 0/40187 (0.0%)
```
/cc @zzyiweiMarge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1112meson: upref for new release2023-09-18T13:35:13ZGert Wollnymeson: upref for new releaseGiven that venus is stabilized now we should be bold and call it version 1.0.0
Please link any MR that should land before we cut the release and link all bugs that should be fixed before that.Given that venus is stabilized now we should be bold and call it version 1.0.0
Please link any MR that should land before we cut the release and link all bugs that should be fixed before that.Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1238vrend: Use uint64_t to evaluate readback size2023-09-18T08:18:27ZFilip Gawinvrend: Use uint64_t to evaluate readback size(in vrend_renderer_transfer_write_iov)
closes: #473(in vrend_renderer_transfer_write_iov)
closes: #473Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1230ci: Uprev Mesa2023-09-18T06:59:41ZGraphics CI botci: Uprev Mesahttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/934renderer: Use tgsi_dump to ensure complete dump2023-09-14T09:35:06ZCorentin Noëlrenderer: Use tgsi_dump to ensure complete dumpThis allows to see the complete output of the TGSI shader instead of
a truncated one.This allows to see the complete output of the TGSI shader instead of
a truncated one.Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1236vkr: add VK_EXT_vertex_input_dynamic_state support2023-09-12T23:32:20ZJuston Livkr: add VK_EXT_vertex_input_dynamic_state supportvenus: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25193
protocol: https://gitlab.freedesktop.org/virgl/venus-protocol/-/merge_requests/75venus: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25193
protocol: https://gitlab.freedesktop.org/virgl/venus-protocol/-/merge_requests/75Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1231shader: make sure to never exceed the immediate range2023-09-12T14:35:44ZCorentin Noëlshader: make sure to never exceed the immediate rangeMake sure to always use an unsigned integer to compare the length of the immediate array.
Also be consistent with the use of MAX_IMMEDIATE everywhere.
Finally, give the compiler a hint on how likely are we to hit the failing case.
Clo...Make sure to always use an unsigned integer to compare the length of the immediate array.
Also be consistent with the use of MAX_IMMEDIATE everywhere.
Finally, give the compiler a hint on how likely are we to hit the failing case.
Closes: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/470Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1235mesa/util: balance pragma diagnostic push/pop in libsync.h2023-09-12T14:08:45ZGert Wollnymesa/util: balance pragma diagnostic push/pop in libsync.hFixes: 62ea381 (mesa/util: Import libsync)Fixes: 62ea381 (mesa/util: Import libsync)Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1233vrend: Read only as many bytes as were mapped2023-09-12T13:25:19ZGert Wollnyvrend: Read only as many bytes as were mappedThe width given in glMapBufferRange refers to machine units, i.e. the
format of the underlying buffer is of no consequence. Hence only
info->box->width bytes are mapped and can be copied to the IOV.
In guest mesa this is accounted for s...The width given in glMapBufferRange refers to machine units, i.e. the
format of the underlying buffer is of no consequence. Hence only
info->box->width bytes are mapped and can be copied to the IOV.
In guest mesa this is accounted for so we don't have to calculate the
send_size value.
Closes: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/469Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1234tests: initialise all context parameters2023-09-12T12:38:39ZGert Wollnytests: initialise all context parametersFixes: a68a262 (Add support for requesting a compat profile)Fixes: a68a262 (Add support for requesting a compat profile)Marge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1229Fix some printing formatters to be cross-platform and use proper pointer2023-09-12T07:52:38ZGert WollnyFix some printing formatters to be cross-platform and use proper pointer* vrend/shader: Make size_t and uint64_t printing cross-platform
* video: Use pointer format specifier for pointers* vrend/shader: Make size_t and uint64_t printing cross-platform
* video: Use pointer format specifier for pointersMarge BotMarge Bothttps://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1224vrend: check buffer size before writing query result2023-09-11T13:45:35ZGert Wollnyvrend: check buffer size before writing query resultCloses: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/454
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>Closes: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/454
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>Marge BotMarge Bot