assert(context);
- ctx->pipe->destroy(ctx->pipe);
-
FREE(ctx);
}
r300_texture.c \
r300_texture_desc.c \
r300_tgsi_to_rc.c \
- r300_video_context.c \
r300_transfer.c
LIBRARY_INCLUDES = \
#include "util/u_format_s3tc.h"
#include "util/u_memory.h"
#include "os/os_time.h"
+#include "vl/vl_context.h"
#include "vl/vl_video_buffer.h"
#include "r300_context.h"
#include "r300_screen_buffer.h"
#include "r300_state_inlines.h"
#include "r300_public.h"
-#include "r300_video_context.h"
#include "draw/draw_context.h"
return retval == usage;
}
+static struct pipe_video_context *
+r300_video_create(struct pipe_screen *screen, struct pipe_context *pipe, void *priv)
+{
+ assert(screen);
+
+ return vl_create_context(pipe);
+}
+
static void r300_destroy_screen(struct pipe_screen* pscreen)
{
struct r300_screen* r300screen = r300_screen(pscreen);
+++ /dev/null
-/*
- * Copyright (C) 2009-2010 Advanced Micro Devices, Inc.
- *
- * 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, sublicense,
- * 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 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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) 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 <vl/vl_context.h>
-#include <util/u_video.h>
-#include "r300_video_context.h"
-
-struct pipe_video_context *
-r300_video_create(struct pipe_screen *screen, void *priv)
-{
- struct pipe_context *pipe;
-
- assert(screen);
-
- pipe = screen->context_create(screen, priv);
- if (!pipe)
- return NULL;
-
- return vl_create_context(pipe);
-}
+++ /dev/null
-/*
- * Copyright (C) 2009-2010 Advanced Micro Devices, Inc.
- *
- * 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, sublicense,
- * 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 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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) 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.
- */
-
-#ifndef __R300_VIDEO_CONTEXT_H__
-#define __R300_VIDEO_CONTEXT_H__
-
-#include <pipe/p_video_context.h>
-
-struct pipe_video_context *
-r300_video_create(struct pipe_screen *screen, void *priv);
-
-#endif
r600_shader.c \
r600_state.c \
r600_texture.c \
- r600_video_context.c \
r700_asm.c \
evergreen_state.c \
eg_asm.c \
#include <util/u_memory.h>
#include <util/u_inlines.h>
#include "util/u_upload_mgr.h"
+#include <vl/vl_context.h>
#include <vl/vl_video_buffer.h>
#include "os/os_time.h"
#include <pipebuffer/pb_buffer.h>
#include "r600_shader.h"
#include "r600_pipe.h"
#include "r600_state_inlines.h"
-#include "r600_video_context.h"
/*
* pipe_context
return &rctx->context;
}
+static struct pipe_video_context *
+r600_video_create(struct pipe_screen *screen, struct pipe_context *pipe, void *priv)
+{
+ assert(screen && pipe);
+
+ return vl_create_context(pipe);
+}
+
/*
* pipe_screen
*/
+++ /dev/null
-/**************************************************************************
- *
- * Copyright 2010 Christian König
- * 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 TUNGSTEN GRAPHICS 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 "r600_video_context.h"
-#include "util/u_video.h"
-#include <vl/vl_context.h>
-
-struct pipe_video_context *
-r600_video_create(struct pipe_screen *screen, void *priv)
-{
- struct pipe_context *pipe;
-
- assert(screen);
-
- pipe = screen->context_create(screen, priv);
- if (!pipe)
- return NULL;
-
- return vl_create_context(pipe);
-}
+++ /dev/null
-#ifndef __R600_VIDEO_CONTEXT_H__
-#define __R600_VIDEO_CONTEXT_H__
-
-#include <pipe/p_video_context.h>
-
-struct pipe_video_context *
-r600_video_create(struct pipe_screen *screen, void *priv);
-
-#endif
}
static struct pipe_video_context *
-sp_video_create(struct pipe_screen *screen, void *priv)
+sp_video_create(struct pipe_screen *screen, struct pipe_context *context, void *priv)
{
- struct pipe_context *pipe;
-
assert(screen);
- pipe = screen->context_create(screen, NULL);
- if (!pipe)
- return NULL;
-
- /* TODO: Use slice buffering for softpipe when implemented, no advantage to buffering an entire picture with softpipe */
- return vl_create_context(pipe);
+ return vl_create_context(context);
}
/**
struct pipe_context * (*context_create)( struct pipe_screen *, void *priv );
- struct pipe_video_context * (*video_context_create)( struct pipe_screen *screen, void *priv );
+ struct pipe_video_context * (*video_context_create)( struct pipe_screen *screen,
+ struct pipe_context *context,
+ void *priv );
/**
* Check if the given pipe_format is supported as a texture or
struct vl_dri_screen *vl_dri_scrn = (struct vl_dri_screen*)vscreen;
struct vl_dri_context *vl_dri_ctx;
+ if (!vscreen->pscreen->video_context_create) {
+ debug_printf("[G3DVL] No video support found on %s/%s.\n",
+ vscreen->pscreen->get_vendor(vscreen->pscreen),
+ vscreen->pscreen->get_name(vscreen->pscreen));
+ goto no_vpipe;
+ }
+
vl_dri_ctx = CALLOC_STRUCT(vl_dri_context);
if (!vl_dri_ctx)
goto no_struct;
- if (!vscreen->pscreen->video_context_create) {
+ vl_dri_ctx->base.pipe = vscreen->pscreen->context_create(vscreen->pscreen, vl_dri_ctx);
+ if (!vl_dri_ctx->base.pipe) {
debug_printf("[G3DVL] No video support found on %s/%s.\n",
vscreen->pscreen->get_vendor(vscreen->pscreen),
vscreen->pscreen->get_name(vscreen->pscreen));
- goto no_vpipe;
+ goto no_pipe;
}
- vl_dri_ctx->base.vpipe = vscreen->pscreen->video_context_create(vscreen->pscreen, vl_dri_ctx);
+ vl_dri_ctx->base.vpipe = vscreen->pscreen->video_context_create(vscreen->pscreen,
+ vl_dri_ctx->base.pipe,
+ vl_dri_ctx);
if (!vl_dri_ctx->base.vpipe)
- goto no_vpipe;
+ goto no_pipe;
vl_dri_ctx->base.vpipe->priv = vl_dri_ctx;
vl_dri_ctx->base.vscreen = vscreen;
return &vl_dri_ctx->base;
-no_vpipe:
+no_pipe:
FREE(vl_dri_ctx);
+
no_struct:
+no_vpipe:
return NULL;
}
assert(vctx);
+ vl_dri_ctx->base.pipe->destroy(vl_dri_ctx->base.pipe);
vl_dri_ctx->base.vpipe->destroy(vl_dri_ctx->base.vpipe);
FREE(vl_dri_ctx);
}
struct vl_context
{
struct vl_screen *vscreen;
+ struct pipe_context *pipe;
struct pipe_video_context *vpipe;
};
struct vl_context*
vl_video_create(struct vl_screen *vscreen)
{
+ struct pipe_video_context *pipe;
struct pipe_video_context *vpipe;
struct vl_context *vctx;
assert(vscreen);
assert(vscreen->pscreen->video_context_create);
- vpipe = vscreen->pscreen->video_context_create(vscreen->pscreen, NULL);
- if (!vpipe)
+ pipe = vscreen->pscreen->context_create(vscreen->pscreen, NULL);
+ if (!pipe)
return NULL;
+ vpipe = vscreen->pscreen->video_context_create(vscreen->pscreen, pipe, NULL);
+ if (!vpipe) {
+ pipe->destroy(pipe);
+ return NULL;
+ }
+
vctx = CALLOC_STRUCT(vl_context);
if (!vctx) {
+ pipe->destroy(pipe);
vpipe->destroy(vpipe);
return NULL;
}
{
assert(vctx);
+ vctx->pipe->destroy(vctx->pipe);
vctx->vpipe->destroy(vctx->vpipe);
FREE(vctx);
}