[Mesa-dev] [PATCH v2] swr: fix resource backed constant buffers
Cherniak, Bruce
bruce.cherniak at intel.com
Tue Apr 19 19:52:39 UTC 2016
Reviewed-by: Bruce Cherniak <bruce.cherniak at intel.com>
On 4/19/16, 12:25 PM, "mesa-dev on behalf of Tim Rowley" <mesa-dev-bounces at lists.freedesktop.org on behalf of timothy.o.rowley at intel.com> wrote:
>Code was using an incorrect address for the base pointer.
>
>v2: use swr_resource_data() utility function.
>
>Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94979
>---
> src/gallium/drivers/swr/swr_resource.h | 2 +-
> src/gallium/drivers/swr/swr_state.cpp | 12 ++++++------
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
>diff --git a/src/gallium/drivers/swr/swr_resource.h b/src/gallium/drivers/swr/swr_resource.h
>index 59cf028..00001e9 100644
>--- a/src/gallium/drivers/swr/swr_resource.h
>+++ b/src/gallium/drivers/swr/swr_resource.h
>@@ -85,7 +85,7 @@ swr_resource_is_texture(const struct pipe_resource *resource)
> }
>
>
>-static INLINE void *
>+static INLINE uint8_t *
> swr_resource_data(struct pipe_resource *resource)
> {
> struct swr_resource *swr_r = swr_resource(resource);
>diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp
>index ded51a9..4ce2d12 100644
>--- a/src/gallium/drivers/swr/swr_state.cpp
>+++ b/src/gallium/drivers/swr/swr_state.cpp
>@@ -936,8 +936,7 @@ swr_update_derived(struct pipe_context *pipe,
> max_vertex = size / pitch;
> partial_inbounds = size % pitch;
>
>- p_data = (const uint8_t *)swr_resource_data(vb->buffer)
>- + vb->buffer_offset;
>+ p_data = swr_resource_data(vb->buffer) + vb->buffer_offset;
> } else {
> /* Client buffer
> * client memory is one-time use, re-trigger SWR_NEW_VERTEX to
>@@ -989,8 +988,7 @@ swr_update_derived(struct pipe_context *pipe,
> * size is based on buffer->width0 rather than info.count
> * to prevent having to validate VBO on each draw */
> size = ib->buffer->width0;
>- p_data =
>- (const uint8_t *)swr_resource_data(ib->buffer) + ib->offset;
>+ p_data = swr_resource_data(ib->buffer) + ib->offset;
> } else {
> /* Client buffer
> * client memory is one-time use, re-trigger SWR_NEW_VERTEX to
>@@ -1138,7 +1136,8 @@ swr_update_derived(struct pipe_context *pipe,
> pDC->num_constantsVS[i] = cb->buffer_size;
> if (cb->buffer)
> pDC->constantVS[i] =
>- (const float *)((const uint8_t *)cb->buffer + cb->buffer_offset);
>+ (const float *)(swr_resource_data(cb->buffer) +
>+ cb->buffer_offset);
> else {
> /* Need to copy these constants to scratch space */
> if (cb->user_buffer && cb->buffer_size) {
>@@ -1163,7 +1162,8 @@ swr_update_derived(struct pipe_context *pipe,
> pDC->num_constantsFS[i] = cb->buffer_size;
> if (cb->buffer)
> pDC->constantFS[i] =
>- (const float *)((const uint8_t *)cb->buffer + cb->buffer_offset);
>+ (const float *)(swr_resource_data(cb->buffer) +
>+ cb->buffer_offset);
> else {
> /* Need to copy these constants to scratch space */
> if (cb->user_buffer && cb->buffer_size) {
>--
>1.9.1
>
>_______________________________________________
>mesa-dev mailing list
>mesa-dev at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list