bool has_depth;
bool has_stencil;
- UINT alignedWidth;
- UINT alignedHeight;
-
SWR_SURFACE_STATE swr;
SWR_SURFACE_STATE secondary; /* for faking depth/stencil merged formats */
struct sw_displaytarget *display_target;
- unsigned row_stride[PIPE_MAX_TEXTURE_LEVELS];
- unsigned img_stride[PIPE_MAX_TEXTURE_LEVELS];
- unsigned mip_offsets[PIPE_MAX_TEXTURE_LEVELS];
+ /* If resource is multisample, then this points to a alternate resource
+ * containing the resolved multisample surface, otherwise null */
+ struct pipe_resource *resolve_target;
- enum swr_resource_status status;
+ size_t mip_offsets[PIPE_MAX_TEXTURE_LEVELS];
+ size_t secondary_mip_offsets[PIPE_MAX_TEXTURE_LEVELS];
- /* pipe_context to which resource is currently bound. */
- struct pipe_context *bound_to_context;
+ enum swr_resource_status status;
};
}
-static INLINE void *
+static INLINE uint8_t *
swr_resource_data(struct pipe_resource *resource)
{
struct swr_resource *swr_r = swr_resource(resource);
}
static INLINE void
-swr_resource_read(struct pipe_context *pipe, struct swr_resource *resource)
+swr_resource_read(struct pipe_resource *resource)
{
- resource->status |= SWR_RESOURCE_READ;
- resource->bound_to_context = pipe;
+ swr_resource(resource)->status |= SWR_RESOURCE_READ;
}
static INLINE void
-swr_resource_write(struct pipe_context *pipe, struct swr_resource *resource)
+swr_resource_write(struct pipe_resource *resource)
{
- resource->status |= SWR_RESOURCE_WRITE;
- resource->bound_to_context = pipe;
+ swr_resource(resource)->status |= SWR_RESOURCE_WRITE;
}
static INLINE void
-swr_resource_unused(struct pipe_context *pipe, struct swr_resource *resource)
+swr_resource_unused(struct pipe_resource *resource)
{
- resource->status = SWR_RESOURCE_UNUSED;
- resource->bound_to_context = nullptr;
+ swr_resource(resource)->status = SWR_RESOURCE_UNUSED;
}
#endif