Merge "minui: Handle the failures from the drm backend in gr_init"
am: 0e2d900739
Change-Id: I690e4ea0a8750dbabfbea8d4401df641d991bfd1
This commit is contained in:
@@ -356,6 +356,10 @@ int gr_init() {
|
|||||||
|
|
||||||
gr_flip();
|
gr_flip();
|
||||||
gr_flip();
|
gr_flip();
|
||||||
|
if (!gr_draw) {
|
||||||
|
printf("gr_init: gr_draw becomes nullptr after gr_flip\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
gr_rotate(DEFAULT_ROTATION);
|
gr_rotate(DEFAULT_ROTATION);
|
||||||
|
|
||||||
|
|||||||
+11
-6
@@ -45,15 +45,17 @@ void MinuiBackendDrm::DrmDisableCrtc(int drm_fd, drmModeCrtc* crtc) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MinuiBackendDrm::DrmEnableCrtc(int drm_fd, drmModeCrtc* crtc, GRSurfaceDrm* surface) {
|
int MinuiBackendDrm::DrmEnableCrtc(int drm_fd, drmModeCrtc* crtc, GRSurfaceDrm* surface) {
|
||||||
int32_t ret = drmModeSetCrtc(drm_fd, crtc->crtc_id, surface->fb_id, 0, 0, // x,y
|
int ret = drmModeSetCrtc(drm_fd, crtc->crtc_id, surface->fb_id, 0, 0, // x,y
|
||||||
&main_monitor_connector->connector_id,
|
&main_monitor_connector->connector_id,
|
||||||
1, // connector_count
|
1, // connector_count
|
||||||
&main_monitor_crtc->mode);
|
&main_monitor_crtc->mode);
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
printf("drmModeSetCrtc failed ret=%d\n", ret);
|
printf("drmModeSetCrtc failed ret=%d\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MinuiBackendDrm::Blank(bool blank) {
|
void MinuiBackendDrm::Blank(bool blank) {
|
||||||
@@ -368,7 +370,10 @@ GRSurface* MinuiBackendDrm::Init() {
|
|||||||
|
|
||||||
current_buffer = 0;
|
current_buffer = 0;
|
||||||
|
|
||||||
DrmEnableCrtc(drm_fd, main_monitor_crtc, GRSurfaceDrms[1]);
|
// We will likely encounter errors in the backend functions (i.e. Flip) if EnableCrtc fails.
|
||||||
|
if (DrmEnableCrtc(drm_fd, main_monitor_crtc, GRSurfaceDrms[1]) != 0) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
return GRSurfaceDrms[0];
|
return GRSurfaceDrms[0];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class MinuiBackendDrm : public MinuiBackend {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void DrmDisableCrtc(int drm_fd, drmModeCrtc* crtc);
|
void DrmDisableCrtc(int drm_fd, drmModeCrtc* crtc);
|
||||||
void DrmEnableCrtc(int drm_fd, drmModeCrtc* crtc, GRSurfaceDrm* surface);
|
int DrmEnableCrtc(int drm_fd, drmModeCrtc* crtc, GRSurfaceDrm* surface);
|
||||||
GRSurfaceDrm* DrmCreateSurface(int width, int height);
|
GRSurfaceDrm* DrmCreateSurface(int width, int height);
|
||||||
void DrmDestroySurface(GRSurfaceDrm* surface);
|
void DrmDestroySurface(GRSurfaceDrm* surface);
|
||||||
void DisableNonMainCrtcs(int fd, drmModeRes* resources, drmModeCrtc* main_crtc);
|
void DisableNonMainCrtcs(int fd, drmModeRes* resources, drmModeCrtc* main_crtc);
|
||||||
|
|||||||
Reference in New Issue
Block a user