Reviewed-by: Bruce Cherniak <[email protected]>
On 4/19/16, 12:25 PM, "mesa-dev on behalf of Tim Rowley" <[email protected] on behalf of [email protected]> 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 >[email protected] >https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
