Appart of two things Henri already said the patch looks good to me(Use device in texture.c, break out the changes to surface_upload_data and surface_download data into seperate patches).
As for a wine test, I think its not easy to test it reliably since the opengl extension gives implementors quite a lot of room and doesn't require exact results. I think all we can reasonably test for are the oddnessnes hl2 requires, like gamma-corrected Q8W8V8U8 and what the rendering outcome is - but that should go into a different patch.