On Wed, 30 Jun 2021 at 06:34, Zebediah Figura z.figura12@gmail.com wrote:
+static bool wined3d_deferred_context_get_upload_bo(struct wined3d_device_context *context,
struct wined3d_resource *resource, unsigned int sub_resource_idx,
struct wined3d_box *box, struct wined3d_const_bo_address *address)
+{
- struct wined3d_deferred_context *deferred = wined3d_deferred_context_from_context(context);
- int i = deferred->upload_count;
- while (i--)
- {
struct wined3d_deferred_upload *upload = &deferred->uploads[i];
if (upload->resource == resource && upload->sub_resource_idx == sub_resource_idx)
{
*box = upload->box;
address->buffer_object = 0;
address->addr = upload->sysmem;
return true;
}
- }
- return false;
+}
"SIZE_T i;", or at least "unsigned int i;"
HRESULT CDECL wined3d_device_context_unmap(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx) {
- struct wined3d_const_bo_address addr;
- struct wined3d_box box;
- TRACE("context %p, resource %p, sub_resource_idx %u.\n", context, resource, sub_resource_idx);
- return context->ops->unmap(context, resource, sub_resource_idx);
- if (context->ops->get_upload_bo(context, resource, sub_resource_idx, &box, &addr))
- {
unsigned int row_pitch, slice_pitch;
wined3d_resource_get_sub_resource_map_pitch(resource, sub_resource_idx, &row_pitch, &slice_pitch);
wined3d_device_context_upload_bo(context, resource, sub_resource_idx, &box, &addr, row_pitch, slice_pitch);
return WINED3D_OK;
- }
- else
- {
return context->ops->unmap(context, resource, sub_resource_idx);
- }
}
Would we ever use ops->get_upload_bo() and ops->unmap() independently of each other? If not, we may as well merge those together.