Lines Matching refs:screen
61 virgl_get_vendor(struct pipe_screen *screen)
68 virgl_get_name(struct pipe_screen *screen)
70 struct virgl_screen *vscreen = virgl_screen(screen);
78 virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
80 struct virgl_screen *vscreen = virgl_screen(screen);
361 return u_pipe_screen_get_param_defaults(screen, param);
366 virgl_get_shader_param(struct pipe_screen *screen,
370 struct virgl_screen *vscreen = virgl_screen(screen);
465 virgl_get_paramf(struct pipe_screen *screen, enum pipe_capf param)
467 struct virgl_screen *vscreen = virgl_screen(screen);
500 virgl_get_compute_param(struct pipe_screen *screen,
505 struct virgl_screen *vscreen = virgl_screen(screen);
557 virgl_has_readback_format(struct pipe_screen *screen,
560 struct virgl_screen *vscreen = virgl_screen(screen);
573 virgl_is_vertex_format_supported(struct pipe_screen *screen,
576 struct virgl_screen *vscreen = virgl_screen(screen);
655 virgl_is_format_supported( struct pipe_screen *screen,
662 struct virgl_screen *vscreen = virgl_screen(screen);
711 return virgl_is_vertex_format_supported(screen, format);
811 static void virgl_flush_frontbuffer(struct pipe_screen *screen,
817 struct virgl_screen *vscreen = virgl_screen(screen);
829 static void virgl_fence_reference(struct pipe_screen *screen,
833 struct virgl_screen *vscreen = virgl_screen(screen);
839 static bool virgl_fence_finish(struct pipe_screen *screen,
844 struct virgl_screen *vscreen = virgl_screen(screen);
854 static int virgl_fence_get_fd(struct pipe_screen *screen,
857 struct virgl_screen *vscreen = virgl_screen(screen);
870 virgl_destroy_screen(struct pipe_screen *screen)
872 struct virgl_screen *vscreen = virgl_screen(screen);
901 static void virgl_query_memory_info(struct pipe_screen *screen, struct pipe_memory_info *info)
903 struct virgl_screen *vscreen = virgl_screen(screen);
904 struct pipe_context *ctx = screen->context_create(screen, NULL, 0);
921 res = (struct virgl_resource*) screen->resource_create(screen, &templ);
935 screen->resource_destroy(screen, &res->b);
941 struct virgl_screen *screen = virgl_screen(pscreen);
943 return screen->disk_cache;
946 static void virgl_disk_cache_create(struct virgl_screen *screen)
965 _mesa_sha1_update(&sha1_ctx, &screen->caps, sizeof(screen->caps));
972 screen->disk_cache = disk_cache_create("virgl", timestamp, 0);
1027 struct virgl_screen *screen = CALLOC_STRUCT(virgl_screen);
1034 if (!screen)
1043 screen->tweak_gles_emulate_bgra =
1045 screen->tweak_gles_apply_bgra_dest_swizzle =
1047 screen->tweak_gles_tf3_value =
1049 screen->tweak_l8_srgb_readback =
1052 screen->tweak_gles_emulate_bgra &= !(virgl_debug & VIRGL_DEBUG_NO_EMULATE_BGRA);
1053 screen->tweak_gles_apply_bgra_dest_swizzle &= !(virgl_debug & VIRGL_DEBUG_NO_BGRA_DEST_SWIZZLE);
1054 screen->no_coherent = virgl_debug & VIRGL_DEBUG_NO_COHERENT;
1055 screen->tweak_l8_srgb_readback |= !!(virgl_debug & VIRGL_DEBUG_L8_SRGB_ENABLE_READBACK);
1057 screen->vws = vws;
1058 screen->base.get_name = virgl_get_name;
1059 screen->base.get_vendor = virgl_get_vendor;
1060 screen->base.get_param = virgl_get_param;
1061 screen->base.get_shader_param = virgl_get_shader_param;
1062 screen->base.get_compute_param = virgl_get_compute_param;
1063 screen->base.get_paramf = virgl_get_paramf;
1064 screen->base.get_compiler_options = virgl_get_compiler_options;
1065 screen->base.is_format_supported = virgl_is_format_supported;
1066 screen->base.destroy = virgl_destroy_screen;
1067 screen->base.context_create = virgl_context_create;
1068 screen->base.flush_frontbuffer = virgl_flush_frontbuffer;
1069 screen->base.get_timestamp = virgl_get_timestamp;
1070 screen->base.fence_reference = virgl_fence_reference;
1071 //screen->base.fence_signalled = virgl_fence_signalled;
1072 screen->base.fence_finish = virgl_fence_finish;
1073 screen->base.fence_get_fd = virgl_fence_get_fd;
1074 screen->base.query_memory_info = virgl_query_memory_info;
1075 screen->base.get_disk_shader_cache = virgl_get_disk_shader_cache;
1076 screen->base.is_dmabuf_modifier_supported = virgl_is_dmabuf_modifier_supported;
1077 screen->base.get_dmabuf_modifier_planes = virgl_get_dmabuf_modifier_planes;
1079 virgl_init_screen_resource_functions(&screen->base);
1081 vws->get_caps(vws, &screen->caps);
1082 fixup_formats(&screen->caps.caps,
1083 &screen->caps.caps.v2.supported_readback_formats);
1084 fixup_formats(&screen->caps.caps, &screen->caps.caps.v2.scanout);
1085 fixup_renderer(&screen->caps.caps);
1087 union virgl_caps *caps = &screen->caps.caps;
1088 screen->tweak_gles_emulate_bgra &= !virgl_format_check_bitmask(PIPE_FORMAT_B8G8R8A8_SRGB, caps->v1.render.bitmask, false);
1089 screen->refcnt = 1;
1092 screen->compiler_options = *(nir_shader_compiler_options *)
1093 nir_to_tgsi_get_compiler_options(&screen->base, PIPE_SHADER_IR_NIR, PIPE_SHADER_FRAGMENT);
1094 if (virgl_get_param(&screen->base, PIPE_CAP_DOUBLES)) {
1098 screen->compiler_options.lower_ffloor = true;
1099 screen->compiler_options.lower_fneg = true;
1102 slab_create_parent(&screen->transfer_pool, sizeof(struct virgl_transfer), 16);
1104 virgl_disk_cache_create(screen);
1105 return &screen->base;