struct pipe_surface base;
struct svga_host_surface_cache_key key;
+
+ /*
+ * Note that the handle may point at a secondary / backing resource
+ * created by svga_texture_view_surface() which is something other
+ * than svga_texture(base->texture)->handle.
+ */
struct svga_winsys_surface *handle;
unsigned real_layer;
/* VGPU10 */
SVGA3dRenderTargetViewId view_id;
+
+ /*
+ * As with 'handle' above, this may point to a secondary / backing resource.
+ * We can't have one resource bound as both a render target and a shader
+ * resource at the same time. But we sometimes want to do that, such as
+ * for mipmap generation where we sample from one level and render into
+ * another.
+ * In this situation, the backed surface is the render target while the
+ * original surface is the shader resource.
+ */
struct svga_surface *backed;
};