EGL partial_update vs. swap_buffers_with_damage and amdgpu support

Charlie McMackin charliemac at endparen.com
Sun Jan 26 14:52:31 UTC 2025


Hello,

I am writing a Wayland+EGL+OpenGL app and am beginning my foray into
rendering only the areas that need updating. I am a little perplexed
trying to figure out which extension(s) my GPU supports.

1. When I run `eglinfo` should I see "EGL_KHR_partial_update" in the
extension list if partial update is supported?

All the symbols mentioned in the registry for extension 83 seem to
refer to BUFFER_AGE_KHR or eglSwapBuffersWithDamageKHR... and is very
similarly worded to extension 84. So I'm not sure if I need to see
this specific extension or if having EGL_EXT_buffer_age and
EGL_KHR_swap_buffers_with_damage is enough.

2. If "yes" is the answer to 1, is there a known reason why an AMD
Renoir level graphics chip wouldn't show support for
EGL_KHR_partial_update ?

Possibly relevant dmesg | grep drm:

[   65.776327] ACPI: bus type drm_connector registered
[   68.006355] [drm] amdgpu kernel modesetting enabled.
[   68.010208] [drm] initializing kernel modesetting (RENOIR
0x1002:0x1636 0x17AA:0x3F1A 0xC2).
[   68.012517] [drm] register mmio base: 0xFC500000
[   68.012518] [drm] register mmio size: 524288
[   68.015442] [drm] add ip block number 0 <soc15_common>
[   68.015445] [drm] add ip block number 1 <gmc_v9_0>
[   68.015446] [drm] add ip block number 2 <vega10_ih>
[   68.015447] [drm] add ip block number 3 <psp>
[   68.015448] [drm] add ip block number 4 <smu>
[   68.015449] [drm] add ip block number 5 <dm>
[   68.015450] [drm] add ip block number 6 <gfx_v9_0>
[   68.015451] [drm] add ip block number 7 <sdma_v4_0>
[   68.015452] [drm] add ip block number 8 <vcn_v2_0>
[   68.015453] [drm] add ip block number 9 <jpeg_v2_0>
[   68.030519] [drm] vm size is 262144 GB, 4 levels, block size is
9-bit, fragment size is 9-bit
[   68.030534] [drm] Detected VRAM RAM=512M, BAR=512M
[   68.030535] [drm] RAM width 128bits DDR4
[   68.030712] [drm] amdgpu: 512M of VRAM memory ready
[   68.030718] [drm] amdgpu: 7679M of GTT memory ready.
[   68.030745] [drm] GART: num cpu pages 262144, num gpu pages 262144
[   68.030878] [drm] PCIE GART of 1024M enabled.
[   68.030880] [drm] PTB located at 0x000000F41FC00000
[   68.031562] [drm] Loading DMUB firmware via PSP: version=0x0101002B
[   68.032104] [drm] Found VCN firmware Version ENC: 1.24 DEC: 8 VEP:
0 Revision: 3
[   68.773325] [drm] Display Core v3.2.301 initialized on DCN 2.1
[   68.773331] [drm] DP-HDMI FRL PCON supported
[   68.773883] [drm] DMUB hardware initialized: version=0x0101002B
[   69.012193] [drm] kiq ring mec 2 pipe 1 q 0
[   69.465667] [drm] Initialized amdgpu 3.59.0 for 0000:04:00.0 on minor 0
[   69.482166] fbcon: amdgpudrmfb (fb0) is primary device
[   69.482804] [drm] pre_validate_dsc:1589 MST_DSC dsc precompute is not needed
[   69.566023] amdgpu 0000:04:00.0: [drm] fb0: amdgpudrmfb frame buffer device


My eglinfo Wayland device section:
Wayland platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
EGL extensions string:
    EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync
    EGL_EXT_buffer_age EGL_EXT_config_select_group
    EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
    EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_present_opaque
    EGL_EXT_protected_surface EGL_EXT_query_reset_notification_strategy
    EGL_EXT_surface_compression EGL_EXT_swap_buffers_with_damage
    EGL_IMG_context_priority EGL_KHR_cl_event2 EGL_KHR_config_attribs
    EGL_KHR_context_flush_control EGL_KHR_create_context
    EGL_KHR_create_context_no_error EGL_KHR_fence_sync
    EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
    EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
    EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
    EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync
    EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage
    EGL_EXT_pixel_format_float EGL_KHR_wait_sync
    EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_gl_interop
    EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
    EGL_MESA_x11_native_visual_id EGL_WL_bind_wayland_display
    EGL_WL_create_wayland_buffer_from_image

Thanks,
Charlie


More information about the mesa-users mailing list