* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
#include <assert.h>
-#include <util/u_format.h>
+#include "util/u_format.h"
#include "vl_vertex_buffers.h"
#include "vl_types.h"
/* create buffer */
quad.stride = sizeof(struct vertex2f);
quad.buffer_offset = 0;
- quad.buffer = pipe_buffer_create
+ quad.buffer.resource = pipe_buffer_create
(
pipe->screen,
PIPE_BIND_VERTEX_BUFFER,
- PIPE_USAGE_STATIC,
+ PIPE_USAGE_DEFAULT,
sizeof(struct vertex2f) * 4
);
+ quad.is_user_buffer = false;
- if(!quad.buffer)
+ if(!quad.buffer.resource)
return quad;
/* and fill it */
v = pipe_buffer_map
(
pipe,
- quad.buffer,
- PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD,
+ quad.buffer.resource,
+ PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD_RANGE,
&buf_transfer
);
/* create buffer */
pos.stride = sizeof(struct vertex2s);
pos.buffer_offset = 0;
- pos.buffer = pipe_buffer_create
+ pos.buffer.resource = pipe_buffer_create
(
pipe->screen,
PIPE_BIND_VERTEX_BUFFER,
- PIPE_USAGE_STATIC,
+ PIPE_USAGE_DEFAULT,
sizeof(struct vertex2s) * width * height
);
+ pos.is_user_buffer = false;
- if(!pos.buffer)
+ if(!pos.buffer.resource)
return pos;
/* and fill it */
v = pipe_buffer_map
(
pipe,
- pos.buffer,
- PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD,
+ pos.buffer.resource,
+ PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD_RANGE,
&buf_transfer
);
size = width * height;
- for (i = 0; i < VL_MAX_PLANES; ++i) {
+ for (i = 0; i < VL_NUM_COMPONENTS; ++i) {
buffer->ycbcr[i].resource = pipe_buffer_create
(
pipe->screen,
goto error_mv;
}
- vl_vb_map(buffer, pipe);
return true;
error_mv:
- for (i = 0; i < VL_MAX_PLANES; ++i)
+ for (i = 0; i < VL_NUM_COMPONENTS; ++i)
pipe_resource_reference(&buffer->mv[i].resource, NULL);
error_ycbcr:
- for (i = 0; i < VL_MAX_PLANES; ++i)
+ for (i = 0; i < VL_NUM_COMPONENTS; ++i)
pipe_resource_reference(&buffer->ycbcr[i].resource, NULL);
return false;
}
buf.stride = sizeof(struct vl_ycbcr_block);
buf.buffer_offset = 0;
- buf.buffer = buffer->ycbcr[component].resource;
+ buf.buffer.resource = buffer->ycbcr[component].resource;
+ buf.is_user_buffer = false;
return buf;
}
buf.stride = sizeof(struct vl_motionvector);
buf.buffer_offset = 0;
- buf.buffer = buffer->mv[motionvector].resource;
+ buf.buffer.resource = buffer->mv[motionvector].resource;
+ buf.is_user_buffer = false;
return buf;
}
assert(buffer && pipe);
- for (i = 0; i < VL_MAX_PLANES; ++i) {
+ for (i = 0; i < VL_NUM_COMPONENTS; ++i) {
buffer->ycbcr[i].vertex_stream = pipe_buffer_map
(
pipe,
buffer->ycbcr[i].resource,
- PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD,
+ PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD_RANGE,
&buffer->ycbcr[i].transfer
);
}
(
pipe,
buffer->mv[i].resource,
- PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD,
+ PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD_RANGE,
&buffer->mv[i].transfer
);
}
vl_vb_get_ycbcr_stream(struct vl_vertex_buffer *buffer, int component)
{
assert(buffer);
- assert(component < VL_MAX_PLANES);
+ assert(component < VL_NUM_COMPONENTS);
return buffer->ycbcr[component].vertex_stream;
}
assert(buffer && pipe);
- for (i = 0; i < VL_MAX_PLANES; ++i) {
+ for (i = 0; i < VL_NUM_COMPONENTS; ++i) {
pipe_buffer_unmap(pipe, buffer->ycbcr[i].transfer);
}
assert(buffer);
- for (i = 0; i < VL_MAX_PLANES; ++i) {
+ for (i = 0; i < VL_NUM_COMPONENTS; ++i) {
pipe_resource_reference(&buffer->ycbcr[i].resource, NULL);
}