https://bugs.winehq.org/show_bug.cgi?id=45901
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |joseph.kucia@gmail.com Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
--- Comment #5 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Andrew Wesie from comment #4)
The reason for using glReadPixels (e.g. texture2d_read_from_framebuffer) in my patch is because of AMD + Mesa. Based on the Mesa source code and empirical testing, GetTexImage (implemented with GetTexSubImage) does not have any special support on AMD, unlike i965: ./mesa/drivers/dri/i965/intel_tex_image.c: functions->GetTexSubImage = intel_get_tex_sub_image;
whereas glReadPixels has support on AMD that prevents the GPU synchronization: ./mesa/drivers/dri/i965/intel_pixel.c: functions->ReadPixels = intelReadPixels; ./mesa/drivers/dri/i915/intel_pixel.c: functions->ReadPixels = intelReadPixels; ./mesa/drivers/dri/r200/r200_state.c: functions->ReadPixels = radeonReadPixels; ./mesa/drivers/dri/radeon/radeon_state.c: ctx->Driver.ReadPixels = radeonReadPixels;
I don't think that you are using the classic Radeon driver. You probably use one of the Gallium drivers, radeonsi most likely.