mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
cursor-renderer/native: Refactor init to per-gpu
Extract the code to initialize a single GPU cursor support into its own
function. The new function will be used by GPU hotplug in the future.
This is a pure refactoring without any behavioral changes.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/1097
Backported from 4cc29cfb61
.
This commit is contained in:
parent
2709a4ffb1
commit
11da42b2f8
@ -1176,6 +1176,35 @@ on_monitors_changed (MetaMonitorManager *monitors,
|
|||||||
force_update_hw_cursor (native);
|
force_update_hw_cursor (native);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
init_hw_cursor_support_for_gpu (MetaGpuKms *gpu_kms)
|
||||||
|
{
|
||||||
|
MetaCursorRendererNativeGpuData *cursor_renderer_gpu_data;
|
||||||
|
int kms_fd;
|
||||||
|
struct gbm_device *gbm_device;
|
||||||
|
uint64_t width, height;
|
||||||
|
|
||||||
|
gbm_device = meta_gbm_device_from_gpu (gpu_kms);
|
||||||
|
if (!gbm_device)
|
||||||
|
return;
|
||||||
|
|
||||||
|
cursor_renderer_gpu_data =
|
||||||
|
meta_create_cursor_renderer_native_gpu_data (gpu_kms);
|
||||||
|
|
||||||
|
kms_fd = meta_gpu_kms_get_fd (gpu_kms);
|
||||||
|
if (drmGetCap (kms_fd, DRM_CAP_CURSOR_WIDTH, &width) == 0 &&
|
||||||
|
drmGetCap (kms_fd, DRM_CAP_CURSOR_HEIGHT, &height) == 0)
|
||||||
|
{
|
||||||
|
cursor_renderer_gpu_data->cursor_width = width;
|
||||||
|
cursor_renderer_gpu_data->cursor_height = height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cursor_renderer_gpu_data->cursor_width = 64;
|
||||||
|
cursor_renderer_gpu_data->cursor_height = 64;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_hw_cursor_support (MetaCursorRendererNative *cursor_renderer_native)
|
init_hw_cursor_support (MetaCursorRendererNative *cursor_renderer_native)
|
||||||
{
|
{
|
||||||
@ -1188,30 +1217,8 @@ init_hw_cursor_support (MetaCursorRendererNative *cursor_renderer_native)
|
|||||||
for (l = gpus; l; l = l->next)
|
for (l = gpus; l; l = l->next)
|
||||||
{
|
{
|
||||||
MetaGpuKms *gpu_kms = l->data;
|
MetaGpuKms *gpu_kms = l->data;
|
||||||
MetaCursorRendererNativeGpuData *cursor_renderer_gpu_data;
|
|
||||||
int kms_fd;
|
|
||||||
struct gbm_device *gbm_device;
|
|
||||||
uint64_t width, height;
|
|
||||||
|
|
||||||
gbm_device = meta_gbm_device_from_gpu (gpu_kms);
|
init_hw_cursor_support_for_gpu (gpu_kms);
|
||||||
if (!gbm_device)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
cursor_renderer_gpu_data =
|
|
||||||
meta_create_cursor_renderer_native_gpu_data (gpu_kms);
|
|
||||||
|
|
||||||
kms_fd = meta_gpu_kms_get_fd (gpu_kms);
|
|
||||||
if (drmGetCap (kms_fd, DRM_CAP_CURSOR_WIDTH, &width) == 0 &&
|
|
||||||
drmGetCap (kms_fd, DRM_CAP_CURSOR_HEIGHT, &height) == 0)
|
|
||||||
{
|
|
||||||
cursor_renderer_gpu_data->cursor_width = width;
|
|
||||||
cursor_renderer_gpu_data->cursor_height = height;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cursor_renderer_gpu_data->cursor_width = 64;
|
|
||||||
cursor_renderer_gpu_data->cursor_height = 64;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user