virgl: removing PIPE_CAP_CLEAR_TEXTURE completely breaks virglrenderer
a1eabeff removed the following code from virgl_get_param
:
case PIPE_CAP_CLEAR_TEXTURE:
return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_CLEAR_TEXTURE;
With the commit comment that "ARB_clear_texture is now implemented in common code." This, of course, is not true for virglrenderer because the existence of PIPE_CAP_CLEAR_TEXTURE
is dependent on the host's renderer. On macOS/iOS, we do not have this and as a result people whose VMs were working perfectly fine now results in a host side crash (in ANGLE) due to an assertion error caused by the guest trying to use an unimplemented feature.
As an aside (unrelated to this specific issue), this is the second time that something like this happened (a feature flag was removed from Mesa only to break virgl): #8023 (closed) Is there any way to prevent this from happening in the future? What kind of testing is done with the virgl backend? Thanks!