Commit ce418533 authored by Keith Whitwell's avatar Keith Whitwell

gallium: softpipe runs gears with pipe_resources

parent bfda4f2e
......@@ -98,7 +98,7 @@ EGL_DRIVERS_DIRS = glx
# Gallium directories and
GALLIUM_DIRS = auxiliary drivers state_trackers
GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
GALLIUM_DRIVERS_DIRS = softpipe failover svga i915 i965 r300 trace identity
GALLIUM_DRIVERS_DIRS = softpipe # trace identity svga i915 i965 r300
GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
GALLIUM_WINSYS_DIRS = null xlib drm
GALLIUM_TARGET_DIRS = libgl-xlib
......
......@@ -146,7 +146,7 @@ static INLINE struct pipe_resource *
pipe_user_buffer_create( struct pipe_screen *screen, void *ptr, unsigned size,
unsigned usage )
{
return screen->user_buffer_create(screen, ptr, size);
return screen->user_buffer_create(screen, ptr, size, usage);
}
static INLINE void *
......
......@@ -55,7 +55,7 @@ pipe_get_tile_raw(struct pipe_context *pipe,
if (dst_stride == 0)
dst_stride = util_format_get_stride(pt->resource->format, w);
if (pipe_clip_tile(x, y, &w, &h, pt))
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
src = pipe->transfer_map(pipe, pt);
......@@ -84,7 +84,7 @@ pipe_put_tile_raw(struct pipe_context *pipe,
if (src_stride == 0)
src_stride = util_format_get_stride(format, w);
if (pipe_clip_tile(x, y, &w, &h, pt))
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
dst = pipe->transfer_map(pipe, pt);
......@@ -1255,7 +1255,7 @@ pipe_get_tile_rgba(struct pipe_context *pipe,
void *packed;
enum pipe_format format = pt->resource->format;
if (pipe_clip_tile(x, y, &w, &h, pt))
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
packed = MALLOC(util_format_get_nblocks(format, w, h) * util_format_get_blocksize(format));
......@@ -1293,7 +1293,7 @@ pipe_get_tile_swizzle(struct pipe_context *pipe,
uint i;
float rgba01[6];
if (pipe_clip_tile(x, y, &w, &h, pt)) {
if (u_clip_tile(x, y, &w, &h, &pt->box)) {
return;
}
......@@ -1347,7 +1347,7 @@ pipe_put_tile_rgba(struct pipe_context *pipe,
void *packed;
enum pipe_format format = pt->resource->format;
if (pipe_clip_tile(x, y, &w, &h, pt))
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
packed = MALLOC(util_format_get_nblocks(format, w, h) * util_format_get_blocksize(format));
......@@ -1449,7 +1449,7 @@ pipe_get_tile_z(struct pipe_context *pipe,
uint i, j;
enum pipe_format format = pt->resource->format;
if (pipe_clip_tile(x, y, &w, &h, pt))
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
map = (ubyte *)pipe->transfer_map(pipe, pt);
......@@ -1534,7 +1534,7 @@ pipe_put_tile_z(struct pipe_context *pipe,
uint i, j;
enum pipe_format format = pt->resource->format;
if (pipe_clip_tile(x, y, &w, &h, pt))
if (u_clip_tile(x, y, &w, &h, &pt->box))
return;
map = (ubyte *)pipe->transfer_map(pipe, pt);
......
......@@ -383,7 +383,8 @@ softpipe_transfer_unmap(struct pipe_context *pipe,
static struct pipe_resource *
softpipe_user_buffer_create(struct pipe_screen *screen,
void *ptr,
unsigned bytes)
unsigned bytes,
unsigned usage)
{
struct softpipe_resource *buffer;
......@@ -393,7 +394,7 @@ softpipe_user_buffer_create(struct pipe_screen *screen,
pipe_reference_init(&buffer->base.reference, 1);
buffer->base.screen = screen;
buffer->base.usage = PIPE_BUFFER_USAGE_CPU_READ;
buffer->base.usage = PIPE_BUFFER_USAGE_CPU_READ | usage;
buffer->base.width0 = bytes;
buffer->base.height0 = 1;
buffer->base.depth0 = 1;
......
......@@ -4,7 +4,6 @@ include $(TOP)/configs/current
LIBNAME = trace
C_SOURCES = \
tr_buffer.c \
tr_context.c \
tr_dump.c \
tr_dump_state.c \
......
......@@ -5,7 +5,6 @@ env = env.Clone()
trace = env.ConvenienceLibrary(
target = 'trace',
source = [
'tr_buffer.c',
'tr_context.c',
'tr_drm.c',
'tr_dump.c',
......
/**************************************************************************
*
* Copyright 2009 VMware, Inc.
* 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 "util/u_inlines.h"
#include "util/u_memory.h"
#include "util/u_simple_list.h"
#include "tr_buffer.h"
struct pipe_buffer *
trace_buffer_create(struct trace_screen *tr_scr,
struct pipe_buffer *buffer)
{
struct trace_buffer *tr_buf;
if(!buffer)
goto error;
assert(buffer->screen == tr_scr->screen);
tr_buf = CALLOC_STRUCT(trace_buffer);
if(!tr_buf)
goto error;
memcpy(&tr_buf->base, buffer, sizeof(struct pipe_buffer));
pipe_reference_init(&tr_buf->base.reference, 1);
tr_buf->base.screen = &tr_scr->base;
tr_buf->buffer = buffer;
trace_screen_add_to_list(tr_scr, buffers, tr_buf);
return &tr_buf->base;
error:
pipe_buffer_reference(&buffer, NULL);
return NULL;
}
void
trace_buffer_destroy(struct trace_screen *tr_scr,
struct pipe_buffer *buffer)
{
struct trace_buffer *tr_buf = trace_buffer(buffer);
trace_screen_remove_from_list(tr_scr, buffers, tr_buf);
pipe_buffer_reference(&tr_buf->buffer, NULL);
FREE(tr_buf);
}
/**************************************************************************
*
* Copyright 2009 VMware, Inc.
* 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.
*
**************************************************************************/
#ifndef TR_BUFFER_H_
#define TR_BUFFER_H_
#include "pipe/p_compiler.h"
#include "pipe/p_state.h"
#include "tr_screen.h"
struct trace_buffer
{
struct pipe_buffer base;
struct pipe_buffer *buffer;
struct tr_list list;
void *map;
boolean range_flushed;
};
static INLINE struct trace_buffer *
trace_buffer(struct pipe_buffer *buffer)
{
if(!buffer)
return NULL;
(void)trace_screen(buffer->screen);
return (struct trace_buffer *)buffer;
}
struct pipe_buffer *
trace_buffer_create(struct trace_screen *tr_scr,
struct pipe_buffer *buffer);
void
trace_buffer_destroy(struct trace_screen *tr_scr,
struct pipe_buffer *buffer);
#endif
......@@ -167,7 +167,8 @@ struct pipe_screen {
*/
struct pipe_resource *(*user_buffer_create)(struct pipe_screen *screen,
void *ptr,
unsigned bytes);
unsigned bytes,
unsigned usage);
/**
* Create a video surface suitable for use as a decoding target by the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment