vhost-user-gpu: glFlush before notifying clients
For similar reasons as commit 3af1671852 ("spice: flush on GL update
before notifying client"), vhost-user-gpu must ensure the GL state is
flushed before sharing its rendering result.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210312100108.2706195-3-marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									d2aea775d4
								
							
						
					
					
						commit
						0c27b9c568
					
				@ -2,7 +2,7 @@ if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \
 | 
				
			|||||||
    and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host \
 | 
					    and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host \
 | 
				
			||||||
    and pixman.found()
 | 
					    and pixman.found()
 | 
				
			||||||
  executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
 | 
					  executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
 | 
				
			||||||
             dependencies: [qemuutil, pixman, gbm, virgl, vhost_user],
 | 
					             dependencies: [qemuutil, pixman, gbm, virgl, vhost_user, opengl],
 | 
				
			||||||
             install: true,
 | 
					             install: true,
 | 
				
			||||||
             install_dir: get_option('libexecdir'))
 | 
					             install_dir: get_option('libexecdir'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -16,6 +16,8 @@
 | 
				
			|||||||
#include <virglrenderer.h>
 | 
					#include <virglrenderer.h>
 | 
				
			||||||
#include "virgl.h"
 | 
					#include "virgl.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <epoxy/gl.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
vg_virgl_update_cursor_data(VuGpu *g, uint32_t resource_id,
 | 
					vg_virgl_update_cursor_data(VuGpu *g, uint32_t resource_id,
 | 
				
			||||||
                            gpointer data)
 | 
					                            gpointer data)
 | 
				
			||||||
@ -372,6 +374,7 @@ virgl_cmd_resource_flush(VuGpu *g,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    VUGPU_FILL_CMD(rf);
 | 
					    VUGPU_FILL_CMD(rf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    glFlush();
 | 
				
			||||||
    if (!rf.resource_id) {
 | 
					    if (!rf.resource_id) {
 | 
				
			||||||
        g_debug("bad resource id for flush..?");
 | 
					        g_debug("bad resource id for flush..?");
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user