mirror of
https://github.com/mpv-player/mpv
synced 2024-11-03 03:19:24 +01:00
vo_opengl: d3d11egl: enable "required" GLSL extensions
ANGLE doesn't handle this very strictly. But if they change this in the future, it shouldn't brick us. Not quite happy with this glsl_extensions fields, but it is quite unintrusive after all.
This commit is contained in:
parent
b0d3c2ede7
commit
4e5f1ec00e
@ -10,6 +10,8 @@ struct gl_hwdec {
|
||||
struct mpv_global *global;
|
||||
GL *gl;
|
||||
struct mp_hwdec_devices *devs;
|
||||
// GLSL extensions required to sample textures from this.
|
||||
const char **glsl_extensions;
|
||||
// For free use by hwdec driver
|
||||
void *priv;
|
||||
// For working around the vdpau vs. vaapi mess.
|
||||
|
@ -201,6 +201,11 @@ static int create(struct gl_hwdec *hw)
|
||||
MP_ERR(hw, "Failed to load some EGLStream functions.\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
static const char *es2_exts[] = {"GL_NV_EGL_stream_consumer_external", 0};
|
||||
static const char *es3_exts[] = {"GL_NV_EGL_stream_consumer_external",
|
||||
"GL_OES_EGL_image_external_essl3", 0};
|
||||
hw->glsl_extensions = hw->gl->es == 200 ? es2_exts : es3_exts;
|
||||
}
|
||||
|
||||
if (use_native_device) {
|
||||
|
@ -784,6 +784,9 @@ static void init_video(struct gl_video *p)
|
||||
if (p->hwdec->driver->reinit(p->hwdec, &p->image_params) < 0)
|
||||
MP_ERR(p, "Initializing texture for hardware decoding failed.\n");
|
||||
init_image_desc(p, p->image_params.imgfmt);
|
||||
const char **exts = p->hwdec->glsl_extensions;
|
||||
for (int n = 0; exts && exts[n]; n++)
|
||||
gl_sc_enable_extension(p->sc, (char *)exts[n]);
|
||||
p->hwdec_active = true;
|
||||
} else {
|
||||
init_format(p, p->image_params.imgfmt, false);
|
||||
|
Loading…
Reference in New Issue
Block a user