@ -38,6 +38,7 @@
. scale = s , \
. scale = s , \
. transform = WL_OUTPUT_TRANSFORM_ # # t , \
. transform = WL_OUTPUT_TRANSFORM_ # # t , \
. transform_name = # t , \
. transform_name = # t , \
. gl_shadow_fb = false , \
. meta . name = " pixman " # s " " # t , \
. meta . name = " pixman " # s " " # t , \
} , \
} , \
{ \
{ \
@ -45,7 +46,16 @@
. scale = s , \
. scale = s , \
. transform = WL_OUTPUT_TRANSFORM_ # # t , \
. transform = WL_OUTPUT_TRANSFORM_ # # t , \
. transform_name = # t , \
. transform_name = # t , \
. meta . name = " GL " # s " " # t , \
. gl_shadow_fb = false , \
. meta . name = " GL no-shadow " # s " " # t , \
} , \
{ \
. renderer = RENDERER_GL , \
. scale = s , \
. transform = WL_OUTPUT_TRANSFORM_ # # t , \
. transform_name = # t , \
. gl_shadow_fb = true , \
. meta . name = " GL shadow " # s " " # t , \
}
}
struct setup_args {
struct setup_args {
@ -54,6 +64,7 @@ struct setup_args {
int scale ;
int scale ;
enum wl_output_transform transform ;
enum wl_output_transform transform ;
const char * transform_name ;
const char * transform_name ;
bool gl_shadow_fb ;
} ;
} ;
static const struct setup_args my_setup_args [ ] = {
static const struct setup_args my_setup_args [ ] = {
@ -118,6 +129,24 @@ fixture_setup(struct weston_test_harness *harness, const struct setup_args *arg)
*/
*/
setup . test_quirks . gl_force_full_upload = true ;
setup . test_quirks . gl_force_full_upload = true ;
if ( arg - > gl_shadow_fb ) {
/*
* A second case for GL - renderer : the shadow framebuffer
*
* This tests blit_shadow_to_output ( ) specifically . The quirk
* forces the shadow framebuffer to be redrawn completely , which
* means the test surface will be completely filled with a new
* color regardless of damage . The blit uses damage too , and
* the damage pattern that is tested for needs to appear in
* that step .
*/
setup . test_quirks . gl_force_full_redraw_of_shadow_fb = true ;
weston_ini_setup ( & setup ,
cfgln ( " [output] " ) ,
cfgln ( " name=headless " ) ,
cfgln ( " use-renderer-shadow=true " ) ) ;
}
return weston_test_harness_execute_as_client ( harness , & setup ) ;
return weston_test_harness_execute_as_client ( harness , & setup ) ;
}
}
DECLARE_FIXTURE_SETUP_WITH_ARG ( fixture_setup , my_setup_args , meta ) ;
DECLARE_FIXTURE_SETUP_WITH_ARG ( fixture_setup , my_setup_args , meta ) ;