Re: [Mesa-dev] [PATCH 2/4] vl: add drm support for vl_screen
On 6 November 2015 at 18:01, Liu, Leo wrote: > >>> +#if GALLIUM_STATIC_TARGETS >>> + vscreen->pscreen = dd_create_screen(fd); >>> +#else >>> + if (pipe_loader_drm_probe_fd(&vscreen->dev, fd)) { >>Add a dup() in the above. So that it reads >> >>if (pipe_loader_drm_probe_fd(&vscreen->dev, dup(fd))) { >> > > The dup is handled is in st/va/context.c before calling vl_drm_screen_create > Please, move it here ? There little point in getting more of these ugly (for which I'm to blame) GALLIUM_STATIC_TARGETS macros around than needed. Thanks Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/4] vl: add drm support for vl_screen
>> +#if GALLIUM_STATIC_TARGETS >> + vscreen->pscreen = dd_create_screen(fd); >> +#else >> + if (pipe_loader_drm_probe_fd(&vscreen->dev, fd)) { >Add a dup() in the above. So that it reads > >if (pipe_loader_drm_probe_fd(&vscreen->dev, dup(fd))) { > The dup is handled is in st/va/context.c before calling vl_drm_screen_create Regards, Leo >Thanks >Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/4] vl: add drm support for vl_screen
On 5 November 2015 at 18:47, Leo Liu wrote: > This will allow the state trackers to use render nodes > with screen creation > > Signed-off-by: Leo Liu > --- > src/gallium/auxiliary/Makefile.sources | 3 +- > src/gallium/auxiliary/vl/vl_winsys.h | 6 +++ > src/gallium/auxiliary/vl/vl_winsys_drm.c | 76 > > 3 files changed, 84 insertions(+), 1 deletion(-) > create mode 100644 src/gallium/auxiliary/vl/vl_winsys_drm.c > > diff --git a/src/gallium/auxiliary/Makefile.sources > b/src/gallium/auxiliary/Makefile.sources > index 6e22ced..82ef5ec 100644 > --- a/src/gallium/auxiliary/Makefile.sources > +++ b/src/gallium/auxiliary/Makefile.sources > @@ -349,7 +349,8 @@ VL_SOURCES := \ > > # XXX: Nuke this as our dri targets no longer depend on VL. > VL_WINSYS_SOURCES := \ > - vl/vl_winsys_dri.c > + vl/vl_winsys_dri.c \ > + vl/vl_winsys_drm.c > > VL_STUB_SOURCES := \ > vl/vl_stubs.c > diff --git a/src/gallium/auxiliary/vl/vl_winsys.h > b/src/gallium/auxiliary/vl/vl_winsys.h > index f6b47c9..df01917 100644 > --- a/src/gallium/auxiliary/vl/vl_winsys.h > +++ b/src/gallium/auxiliary/vl/vl_winsys.h > @@ -66,4 +66,10 @@ vl_screen_set_next_timestamp(struct vl_screen *vscreen, > uint64_t stamp); > void* > vl_screen_get_private(struct vl_screen *vscreen); > > +struct vl_screen* > +vl_drm_screen_create(int fd); > + > +void > +vl_drm_screen_destroy(struct vl_screen *vscreen); > + > #endif > diff --git a/src/gallium/auxiliary/vl/vl_winsys_drm.c > b/src/gallium/auxiliary/vl/vl_winsys_drm.c > new file mode 100644 > index 000..65b74eb > --- /dev/null > +++ b/src/gallium/auxiliary/vl/vl_winsys_drm.c > @@ -0,0 +1,76 @@ > +/** > + * > + * Copyright 2009 Younes Manton. > + * All Rights Reserved. > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the > + * "Software"), to deal in the Software without restriction, including > + * without limitation the rights to use, copy, modify, merge, publish, > + * distribute, sub license, and/or sell copies of the Software, and to > + * permit persons to whom the Software is furnished to do so, subject to > + * the following conditions: > + * > + * The above copyright notice and this permission notice (including the > + * next paragraph) shall be included in all copies or substantial portions > + * of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. > + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR > + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. > + * > + **/ > + > +#include > + > +#include "pipe/p_screen.h" > +#include "pipe-loader/pipe_loader.h" > + > +#include "util/u_memory.h" > +#include "vl/vl_winsys.h" > + > +struct vl_screen* > +vl_drm_screen_create(int fd) > +{ > + struct vl_screen *vscreen; > + > + vscreen = CALLOC_STRUCT(vl_screen); > + if (!vscreen) > + return NULL; > + > +#if GALLIUM_STATIC_TARGETS > + vscreen->pscreen = dd_create_screen(fd); > +#else > + if (pipe_loader_drm_probe_fd(&vscreen->dev, fd)) { Add a dup() in the above. So that it reads if (pipe_loader_drm_probe_fd(&vscreen->dev, dup(fd))) { Thanks Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/4] vl: add drm support for vl_screen
On 5 November 2015 at 19:43, Christian König wrote: >> >> +/** >> + * >> + * Copyright 2009 Younes Manton. >> + * All Rights Reserved. > > You probably want to change the copyright here. > Heh considering that 90% of the following is bastardised^Wwritten by yours truly who never bothers updating copyrights headers ;-) >> --- /dev/null >> +++ b/src/gallium/auxiliary/vl/vl_winsys_drm.c >> +#include >> + >> +#include "pipe/p_screen.h" >> +#include "pipe-loader/pipe_loader.h" Please add the following include. #include "state_tracker/drm_driver.h" -Emil ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/4] vl: add drm support for vl_screen
+/** + * + * Copyright 2009 Younes Manton. + * All Rights Reserved. You probably want to change the copyright here. With that fixed the whole series is Reviewed-by: Christian König Regards, Christian. On 05.11.2015 19:47, Leo Liu wrote: This will allow the state trackers to use render nodes with screen creation Signed-off-by: Leo Liu --- src/gallium/auxiliary/Makefile.sources | 3 +- src/gallium/auxiliary/vl/vl_winsys.h | 6 +++ src/gallium/auxiliary/vl/vl_winsys_drm.c | 76 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/gallium/auxiliary/vl/vl_winsys_drm.c diff --git a/src/gallium/auxiliary/Makefile.sources b/src/gallium/auxiliary/Makefile.sources index 6e22ced..82ef5ec 100644 --- a/src/gallium/auxiliary/Makefile.sources +++ b/src/gallium/auxiliary/Makefile.sources @@ -349,7 +349,8 @@ VL_SOURCES := \ # XXX: Nuke this as our dri targets no longer depend on VL. VL_WINSYS_SOURCES := \ - vl/vl_winsys_dri.c + vl/vl_winsys_dri.c \ + vl/vl_winsys_drm.c VL_STUB_SOURCES := \ vl/vl_stubs.c diff --git a/src/gallium/auxiliary/vl/vl_winsys.h b/src/gallium/auxiliary/vl/vl_winsys.h index f6b47c9..df01917 100644 --- a/src/gallium/auxiliary/vl/vl_winsys.h +++ b/src/gallium/auxiliary/vl/vl_winsys.h @@ -66,4 +66,10 @@ vl_screen_set_next_timestamp(struct vl_screen *vscreen, uint64_t stamp); void* vl_screen_get_private(struct vl_screen *vscreen); +struct vl_screen* +vl_drm_screen_create(int fd); + +void +vl_drm_screen_destroy(struct vl_screen *vscreen); + #endif diff --git a/src/gallium/auxiliary/vl/vl_winsys_drm.c b/src/gallium/auxiliary/vl/vl_winsys_drm.c new file mode 100644 index 000..65b74eb --- /dev/null +++ b/src/gallium/auxiliary/vl/vl_winsys_drm.c @@ -0,0 +1,76 @@ +/** + * + * Copyright 2009 Younes Manton. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **/ + +#include + +#include "pipe/p_screen.h" +#include "pipe-loader/pipe_loader.h" + +#include "util/u_memory.h" +#include "vl/vl_winsys.h" + +struct vl_screen* +vl_drm_screen_create(int fd) +{ + struct vl_screen *vscreen; + + vscreen = CALLOC_STRUCT(vl_screen); + if (!vscreen) + return NULL; + +#if GALLIUM_STATIC_TARGETS + vscreen->pscreen = dd_create_screen(fd); +#else + if (pipe_loader_drm_probe_fd(&vscreen->dev, fd)) { + vscreen->pscreen = + pipe_loader_create_screen(vscreen->dev, PIPE_SEARCH_DIR); + if (!vscreen->pscreen) + pipe_loader_release(&vscreen->dev, 1); + } +#endif + + if (!vscreen->pscreen) { + FREE(vscreen); + return NULL; + } + + return vscreen; +} + +void +vl_drm_screen_destroy(struct vl_screen *vscreen) +{ + assert(vscreen); + + vscreen->pscreen->destroy(vscreen->pscreen); + +#if !GALLIUM_STATIC_TARGETS + pipe_loader_release(&vscreen->dev, 1); +#endif + + FREE(vscreen); +} ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/4] vl: add drm support for vl_screen
This will allow the state trackers to use render nodes with screen creation Signed-off-by: Leo Liu --- src/gallium/auxiliary/Makefile.sources | 3 +- src/gallium/auxiliary/vl/vl_winsys.h | 6 +++ src/gallium/auxiliary/vl/vl_winsys_drm.c | 76 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/gallium/auxiliary/vl/vl_winsys_drm.c diff --git a/src/gallium/auxiliary/Makefile.sources b/src/gallium/auxiliary/Makefile.sources index 6e22ced..82ef5ec 100644 --- a/src/gallium/auxiliary/Makefile.sources +++ b/src/gallium/auxiliary/Makefile.sources @@ -349,7 +349,8 @@ VL_SOURCES := \ # XXX: Nuke this as our dri targets no longer depend on VL. VL_WINSYS_SOURCES := \ - vl/vl_winsys_dri.c + vl/vl_winsys_dri.c \ + vl/vl_winsys_drm.c VL_STUB_SOURCES := \ vl/vl_stubs.c diff --git a/src/gallium/auxiliary/vl/vl_winsys.h b/src/gallium/auxiliary/vl/vl_winsys.h index f6b47c9..df01917 100644 --- a/src/gallium/auxiliary/vl/vl_winsys.h +++ b/src/gallium/auxiliary/vl/vl_winsys.h @@ -66,4 +66,10 @@ vl_screen_set_next_timestamp(struct vl_screen *vscreen, uint64_t stamp); void* vl_screen_get_private(struct vl_screen *vscreen); +struct vl_screen* +vl_drm_screen_create(int fd); + +void +vl_drm_screen_destroy(struct vl_screen *vscreen); + #endif diff --git a/src/gallium/auxiliary/vl/vl_winsys_drm.c b/src/gallium/auxiliary/vl/vl_winsys_drm.c new file mode 100644 index 000..65b74eb --- /dev/null +++ b/src/gallium/auxiliary/vl/vl_winsys_drm.c @@ -0,0 +1,76 @@ +/** + * + * Copyright 2009 Younes Manton. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **/ + +#include + +#include "pipe/p_screen.h" +#include "pipe-loader/pipe_loader.h" + +#include "util/u_memory.h" +#include "vl/vl_winsys.h" + +struct vl_screen* +vl_drm_screen_create(int fd) +{ + struct vl_screen *vscreen; + + vscreen = CALLOC_STRUCT(vl_screen); + if (!vscreen) + return NULL; + +#if GALLIUM_STATIC_TARGETS + vscreen->pscreen = dd_create_screen(fd); +#else + if (pipe_loader_drm_probe_fd(&vscreen->dev, fd)) { + vscreen->pscreen = + pipe_loader_create_screen(vscreen->dev, PIPE_SEARCH_DIR); + if (!vscreen->pscreen) + pipe_loader_release(&vscreen->dev, 1); + } +#endif + + if (!vscreen->pscreen) { + FREE(vscreen); + return NULL; + } + + return vscreen; +} + +void +vl_drm_screen_destroy(struct vl_screen *vscreen) +{ + assert(vscreen); + + vscreen->pscreen->destroy(vscreen->pscreen); + +#if !GALLIUM_STATIC_TARGETS + pipe_loader_release(&vscreen->dev, 1); +#endif + + FREE(vscreen); +} -- 1.9.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev