vrend: reorder and compress vrend_state structure

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
macos/master
Gert Wollny 4 years ago
parent cf039b3af3
commit 31178f2327
  1. 64
      src/vrend_renderer.c

@ -307,54 +307,52 @@ static const struct {
}; };
struct global_renderer_state { struct global_renderer_state {
int gl_major_ver; struct vrend_context *ctx0;
int gl_minor_ver;
struct vrend_context *current_ctx; struct vrend_context *current_ctx;
struct vrend_context *current_hw_ctx; struct vrend_context *current_hw_ctx;
struct list_head waiting_query_list;
bool finishing;
bool use_gles;
bool use_core_profile;
bool use_external_blob;
bool use_integer;
#ifdef HAVE_EPOXY_EGL_H
bool use_egl_fence;
#endif
bool features[feat_last];
/* these appeared broken on at least one driver */ struct list_head waiting_query_list;
bool use_explicit_locations;
uint32_t max_draw_buffers;
uint32_t max_texture_2d_size;
uint32_t max_texture_3d_size;
uint32_t max_texture_cube_size;
/* threaded sync */
bool stop_sync_thread;
int eventfd;
pipe_mutex fence_mutex;
/* a fence is always on either of the lists, or is pointed to by
* fence_waiting
*/
struct list_head fence_list; struct list_head fence_list;
struct list_head fence_wait_list; struct list_head fence_wait_list;
struct vrend_fence *fence_waiting; struct vrend_fence *fence_waiting;
pipe_condvar fence_cond;
struct vrend_context *ctx0; int gl_major_ver;
int gl_minor_ver;
pipe_mutex fence_mutex;
pipe_thread sync_thread; pipe_thread sync_thread;
virgl_gl_context sync_context; virgl_gl_context sync_context;
/* Needed on GLES to inject a TCS */ pipe_condvar fence_cond;
float tess_factors[6]; float tess_factors[6];
int eventfd;
uint32_t max_draw_buffers;
uint32_t max_texture_2d_size;
uint32_t max_texture_3d_size;
uint32_t max_texture_cube_size;
/* inferred GL caching type */ /* inferred GL caching type */
uint32_t inferred_gl_caching_type; uint32_t inferred_gl_caching_type;
bool features[feat_last];
uint32_t finishing : 1;
uint32_t use_gles : 1;
uint32_t use_core_profile : 1;
uint32_t use_external_blob : 1;
uint32_t use_integer : 1;
/* these appeared broken on at least one driver */
uint32_t use_explicit_locations : 1;
/* threaded sync */
uint32_t stop_sync_thread : 1;
/* Needed on GLES to inject a TCS */
uint32_t bgra_srgb_emulation_loaded : 1;
#ifdef HAVE_EPOXY_EGL_H
uint32_t use_egl_fence : 1;
#endif
}; };
static struct global_renderer_state vrend_state; static struct global_renderer_state vrend_state;

Loading…
Cancel
Save