mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
gallium: Add texture usage information to surface_buffer_create
We need aditional meta data about the usage of the surface in softpipe because we need to be able tell the diffrence between PRIMARY and DISPLAY_TARGET surfaces.
This commit is contained in:
parent
7013a4dfb8
commit
a41a253ce3
7 changed files with 13 additions and 2 deletions
|
|
@ -65,12 +65,13 @@ pass_surface_buffer_create(struct pipe_screen *screen,
|
|||
unsigned width, unsigned height,
|
||||
enum pipe_format format,
|
||||
unsigned usage,
|
||||
unsigned tex_usage,
|
||||
unsigned *stride)
|
||||
{
|
||||
struct pipe_buffer *buffer =
|
||||
screen->winsys->surface_buffer_create(screen->winsys,
|
||||
width, height,
|
||||
format, usage, stride);
|
||||
format, usage, tex_usage, stride);
|
||||
|
||||
buffer->screen = screen;
|
||||
|
||||
|
|
|
|||
|
|
@ -212,13 +212,14 @@ timed_surface_buffer_create(struct pipe_winsys *winsys,
|
|||
unsigned width, unsigned height,
|
||||
enum pipe_format format,
|
||||
unsigned usage,
|
||||
unsigned tex_usage,
|
||||
unsigned *stride)
|
||||
{
|
||||
struct pipe_winsys *backend = timed_winsys(winsys)->backend;
|
||||
uint64_t start = time_start();
|
||||
|
||||
struct pipe_buffer *ret = backend->surface_buffer_create( backend, width, height,
|
||||
format, usage, stride );
|
||||
format, usage, tex_usage, stride );
|
||||
|
||||
time_finish(winsys, start, 7, __FUNCTION__);
|
||||
|
||||
|
|
|
|||
|
|
@ -289,6 +289,7 @@ identity_screen_surface_buffer_create(struct pipe_screen *_screen,
|
|||
unsigned height,
|
||||
enum pipe_format format,
|
||||
unsigned usage,
|
||||
unsigned tex_usage,
|
||||
unsigned *stride)
|
||||
{
|
||||
struct identity_screen *id_screen = identity_screen(_screen);
|
||||
|
|
@ -300,6 +301,7 @@ identity_screen_surface_buffer_create(struct pipe_screen *_screen,
|
|||
height,
|
||||
format,
|
||||
usage,
|
||||
tex_usage,
|
||||
stride);
|
||||
|
||||
if (result)
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ softpipe_displaytarget_layout(struct pipe_screen *screen,
|
|||
{
|
||||
unsigned usage = (PIPE_BUFFER_USAGE_CPU_READ_WRITE |
|
||||
PIPE_BUFFER_USAGE_GPU_READ_WRITE);
|
||||
unsigned tex_usage = spt->base.tex_usage;
|
||||
|
||||
spt->base.nblocksx[0] = pf_get_nblocksx(&spt->base.block, spt->base.width[0]);
|
||||
spt->base.nblocksy[0] = pf_get_nblocksy(&spt->base.block, spt->base.height[0]);
|
||||
|
|
@ -104,6 +105,7 @@ softpipe_displaytarget_layout(struct pipe_screen *screen,
|
|||
spt->base.height[0],
|
||||
spt->base.format,
|
||||
usage,
|
||||
tex_usage,
|
||||
&spt->stride[0]);
|
||||
|
||||
return spt->buffer != NULL;
|
||||
|
|
|
|||
|
|
@ -462,6 +462,7 @@ trace_screen_surface_buffer_create(struct pipe_screen *_screen,
|
|||
unsigned width, unsigned height,
|
||||
enum pipe_format format,
|
||||
unsigned usage,
|
||||
unsigned tex_usage,
|
||||
unsigned *pstride)
|
||||
{
|
||||
struct trace_screen *tr_scr = trace_screen(_screen);
|
||||
|
|
@ -476,11 +477,13 @@ trace_screen_surface_buffer_create(struct pipe_screen *_screen,
|
|||
trace_dump_arg(uint, height);
|
||||
trace_dump_arg(format, format);
|
||||
trace_dump_arg(uint, usage);
|
||||
trace_dump_arg(uint, tex_usage);
|
||||
|
||||
result = screen->surface_buffer_create(screen,
|
||||
width, height,
|
||||
format,
|
||||
usage,
|
||||
tex_usage,
|
||||
pstride);
|
||||
|
||||
stride = *pstride;
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ struct pipe_winsys
|
|||
unsigned width, unsigned height,
|
||||
enum pipe_format format,
|
||||
unsigned usage,
|
||||
unsigned tex_usage,
|
||||
unsigned *stride);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@ struct pipe_screen {
|
|||
unsigned width, unsigned height,
|
||||
enum pipe_format format,
|
||||
unsigned usage,
|
||||
unsigned tex_usage,
|
||||
unsigned *stride);
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue