llvmpipe: use alpha from already converted color if possible
[mesa.git] / src / gallium / drivers / svga / svga_resource_buffer.c
index b47b07be254d1918af16ee572e0b0a457df388a3..99ed1a2e2e094a2ac3c7442641bbc1ced487160d 100644 (file)
@@ -98,6 +98,13 @@ svga_buffer_transfer_map(struct pipe_context *pipe,
    transfer->stride = 0;
    transfer->layer_stride = 0;
 
+   if (usage & PIPE_TRANSFER_WRITE) {
+      /* If we write to the buffer for any reason, free any saved translated
+       * vertices.
+       */
+      pipe_resource_reference(&sbuf->translated_indices.buffer, NULL);
+   }
+
    if ((usage & PIPE_TRANSFER_READ) && sbuf->dirty) {
       enum pipe_error ret;
 
@@ -361,6 +368,8 @@ svga_buffer_destroy( struct pipe_screen *screen,
    if (sbuf->swbuf && !sbuf->user)
       align_free(sbuf->swbuf);
 
+   pipe_resource_reference(&sbuf->translated_indices.buffer, NULL);
+
    ss->hud.total_resource_bytes -= sbuf->size;
    assert(ss->hud.num_resources > 0);
    if (ss->hud.num_resources > 0)