Fix T57455: Laggy, freezing UI with Linux and Intel UHD 620
Seems like a driver bug but doing glFlush() before these calls fixes it.
This commit is contained in:
@@ -387,6 +387,12 @@ void ED_screen_draw_edges(wmWindow *win)
|
||||
BLI_rcti_do_minmax_v(&scissor_rect, (int[2]){sa->v3->vec.x, sa->v3->vec.y});
|
||||
}
|
||||
|
||||
if (GPU_type_matches(GPU_DEVICE_INTEL_UHD, GPU_OS_UNIX, GPU_OS_ANY)) {
|
||||
/* For some reason, on linux + Intel UHD Graphics 620 the driver
|
||||
* hangs if we don't flush before this. (See T57455) */
|
||||
glFlush();
|
||||
}
|
||||
|
||||
GPU_scissor(scissor_rect.xmin,
|
||||
scissor_rect.ymin,
|
||||
BLI_rcti_size_x(&scissor_rect) + 1,
|
||||
|
||||
@@ -66,8 +66,9 @@ typedef enum GPUDeviceType {
|
||||
GPU_DEVICE_NVIDIA = (1 << 0),
|
||||
GPU_DEVICE_ATI = (1 << 1),
|
||||
GPU_DEVICE_INTEL = (1 << 2),
|
||||
GPU_DEVICE_SOFTWARE = (1 << 3),
|
||||
GPU_DEVICE_UNKNOWN = (1 << 4),
|
||||
GPU_DEVICE_INTEL_UHD = (1 << 3),
|
||||
GPU_DEVICE_SOFTWARE = (1 << 4),
|
||||
GPU_DEVICE_UNKNOWN = (1 << 5),
|
||||
GPU_DEVICE_ANY = (0xff)
|
||||
} GPUDeviceType;
|
||||
|
||||
|
||||
@@ -282,6 +282,10 @@ void gpu_extensions_init(void)
|
||||
{
|
||||
GG.device = GPU_DEVICE_INTEL;
|
||||
GG.driver = GPU_DRIVER_OFFICIAL;
|
||||
|
||||
if (strstr(renderer, "UHD Graphics")) {
|
||||
GG.device |= GPU_DEVICE_INTEL_UHD;
|
||||
}
|
||||
}
|
||||
else if ((strstr(renderer, "Mesa DRI R")) ||
|
||||
(strstr(renderer, "Radeon") && strstr(vendor, "X.Org")) ||
|
||||
|
||||
Reference in New Issue
Block a user