Fix texture sharing between GPUs
This commit is contained in:
@@ -171,19 +171,34 @@ int main(int argc, char** argv)
|
||||
|
||||
GLuint list = gen_cubes();
|
||||
|
||||
|
||||
int eye_w = hmd_w/2*OVERSAMPLE_SCALE;
|
||||
int eye_h = hmd_h*OVERSAMPLE_SCALE;
|
||||
|
||||
EGLint imageAttribs[] = {
|
||||
EGL_WIDTH, eye_w,
|
||||
EGL_HEIGHT, eye_h,
|
||||
EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_FORMAT_ARGB32_MESA,
|
||||
EGL_DRM_BUFFER_USE_MESA, EGL_DRM_BUFFER_USE_SHARE_MESA,
|
||||
EGL_NONE
|
||||
};
|
||||
|
||||
PFNEGLCREATEDRMIMAGEMESAPROC eglCreateDRMImage = (PFNEGLCREATEDRMIMAGEMESAPROC) eglGetProcAddress("eglCreateDRMImageMESA");
|
||||
|
||||
EGLImage left_image = eglCreateDRMImage(gl.egl_display, imageAttribs);
|
||||
EGLImage right_image = eglCreateDRMImage(gl.egl_display, imageAttribs);
|
||||
|
||||
GLuint left_color_tex = 0, left_depth_tex = 0, left_fbo = 0;
|
||||
create_fbo(eye_w, eye_h, &left_fbo, &left_color_tex, &left_depth_tex);
|
||||
create_fbo(eye_w, eye_h, &left_fbo, &left_color_tex, &left_depth_tex, left_image);
|
||||
|
||||
GLuint right_color_tex = 0, right_depth_tex = 0, right_fbo = 0;
|
||||
create_fbo(eye_w, eye_h, &right_fbo, &right_color_tex, &right_depth_tex);
|
||||
create_fbo(eye_w, eye_h, &right_fbo, &right_color_tex, &right_depth_tex, right_image);
|
||||
|
||||
PFNEGLEXPORTDMABUFIMAGEMESAPROC eglExportDMABUFImage = (PFNEGLEXPORTDMABUFIMAGEMESAPROC) eglGetProcAddress("eglExportDMABUFImageMESA");
|
||||
PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC eglExportDMABUFImageQuery = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) eglGetProcAddress("eglExportDMABUFImageQueryMESA");
|
||||
|
||||
#if 1
|
||||
EGLImage left_image = eglCreateImage(gl.egl_display, gl.egl_context, EGL_GL_TEXTURE_2D, (EGLClientBuffer)(left_color_tex), NULL);
|
||||
//EGLImage left_image = eglCreateImage(gl.egl_display, gl.egl_context, EGL_GL_TEXTURE_2D, (EGLClientBuffer)(left_color_tex), NULL);
|
||||
|
||||
dma_texture_params left_texture_params;
|
||||
left_texture_params.width = eye_w;
|
||||
@@ -193,7 +208,7 @@ int main(int argc, char** argv)
|
||||
#endif // 0
|
||||
|
||||
#if 1
|
||||
EGLImage right_image = eglCreateImage(gl.egl_display, gl.egl_context, EGL_GL_TEXTURE_2D, (EGLClientBuffer)(right_color_tex), NULL);
|
||||
//EGLImage right_image = eglCreateImage(gl.egl_display, gl.egl_context, EGL_GL_TEXTURE_2D, (EGLClientBuffer)(right_color_tex), NULL);
|
||||
|
||||
dma_texture_params right_texture_params;
|
||||
right_texture_params.width = eye_w;
|
||||
|
||||
Reference in New Issue
Block a user