struct virtio_gpu_object *obj;
        int ret;
        uint32_t pitch;
-       uint32_t resid;
        uint32_t format;
 
        if (args->bpp != 32)
 
        format = virtio_gpu_translate_format(DRM_FORMAT_HOST_XRGB8888);
        obj = gem_to_virtio_gpu_obj(gobj);
-       virtio_gpu_resource_id_get(vgdev, &resid);
-       virtio_gpu_cmd_create_resource(vgdev, obj, resid, format,
+       virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle);
+       virtio_gpu_cmd_create_resource(vgdev, obj, obj->hw_res_handle, format,
                                       args->width, args->height);
 
        /* attach the object to the resource */
-       obj = gem_to_virtio_gpu_obj(gobj);
-       ret = virtio_gpu_object_attach(vgdev, obj, resid, NULL);
+       ret = virtio_gpu_object_attach(vgdev, obj, obj->hw_res_handle, NULL);
        if (ret)
                goto fail;