#include "fd6_context.h"
#include "fd6_blend.h"
+#include "fd6_blitter.h"
#include "fd6_draw.h"
#include "fd6_emit.h"
#include "fd6_gmem.h"
{
struct fd6_context *fd6_ctx = fd6_context(fd_context(pctx));
- fd_bo_del(fd6_ctx->vs_pvt_mem);
- fd_bo_del(fd6_ctx->fs_pvt_mem);
- fd_bo_del(fd6_ctx->vsc_size_mem);
+ u_upload_destroy(fd6_ctx->border_color_uploader);
+
+ fd_context_destroy(pctx);
+
+ fd_bo_del(fd6_ctx->vsc_data);
+ fd_bo_del(fd6_ctx->vsc_data2);
fd_bo_del(fd6_ctx->blit_mem);
fd_context_cleanup_common_vbos(&fd6_ctx->base);
- u_upload_destroy(fd6_ctx->border_color_uploader);
+ ir3_cache_destroy(fd6_ctx->shader_cache);
- fd_context_destroy(pctx);
+ fd6_texture_fini(pctx);
free(fd6_ctx);
}
if (!pctx)
return NULL;
- fd6_ctx->vs_pvt_mem = fd_bo_new(screen->dev, 0x2000,
- DRM_FREEDRENO_GEM_TYPE_KMEM);
+ util_blitter_set_texture_multisample(fd6_ctx->base.blitter, true);
+
+ /* fd_context_init overwrites delete_rasterizer_state, so set this
+ * here. */
+ pctx->delete_rasterizer_state = fd6_rasterizer_state_delete;
+ pctx->delete_depth_stencil_alpha_state = fd6_depth_stencil_alpha_state_delete;
- fd6_ctx->fs_pvt_mem = fd_bo_new(screen->dev, 0x2000,
- DRM_FREEDRENO_GEM_TYPE_KMEM);
+ fd6_ctx->vsc_data = fd_bo_new(screen->dev,
+ (A6XX_VSC_DATA_PITCH * 32) + 0x100,
+ DRM_FREEDRENO_GEM_TYPE_KMEM, "vsc_data");
- fd6_ctx->vsc_size_mem = fd_bo_new(screen->dev, 0x1000,
- DRM_FREEDRENO_GEM_TYPE_KMEM);
+ fd6_ctx->vsc_data2 = fd_bo_new(screen->dev,
+ A6XX_VSC_DATA2_PITCH * 32,
+ DRM_FREEDRENO_GEM_TYPE_KMEM, "vsc_data2");
fd6_ctx->blit_mem = fd_bo_new(screen->dev, 0x1000,
- DRM_FREEDRENO_GEM_TYPE_KMEM);
+ DRM_FREEDRENO_GEM_TYPE_KMEM, "blit");
fd_context_setup_common_vbos(&fd6_ctx->base);
fd6_query_context_init(pctx);
+ fd6_blitter_init(pctx);
fd6_ctx->border_color_uploader = u_upload_create(pctx, 4096, 0,
PIPE_USAGE_STREAM, 0);