}
static struct TransitionableResourceState *
-create_trans_state(ID3D12Resource *res, enum pipe_format format)
+create_trans_state(ID3D12Resource *res)
{
D3D12_RESOURCE_DESC desc = GetDesc(res);
unsigned total_subresources = desc.MipLevels *
arraySize *
d3d12_non_opaque_plane_count(desc.Format);
- total_subresources *= util_format_has_stencil(util_format_description(format)) ?
- 2 : 1;
return new TransitionableResourceState(res,
total_subresources,
}
struct d3d12_bo *
-d3d12_bo_wrap_res(struct d3d12_screen *screen, ID3D12Resource *res, enum pipe_format format, enum d3d12_residency_status residency)
+d3d12_bo_wrap_res(struct d3d12_screen *screen, ID3D12Resource *res, enum d3d12_residency_status residency)
{
struct d3d12_bo *bo;
pipe_reference_init(&bo->reference, 1);
bo->screen = screen;
bo->res = res;
- bo->trans_state = create_trans_state(res, format);
+ bo->trans_state = create_trans_state(res);
bo->unique_id = p_atomic_inc_return(&screen->resource_id_generator);
bo->residency_status = residency;
if (FAILED(hres))
return NULL;
- return d3d12_bo_wrap_res(screen, res, PIPE_FORMAT_NONE, init_residency);
+ return d3d12_bo_wrap_res(screen, res, init_residency);
}
struct d3d12_bo *
d3d12_bo_new(struct d3d12_screen *screen, uint64_t size, uint64_t alignment);
struct d3d12_bo *
-d3d12_bo_wrap_res(struct d3d12_screen *screen, ID3D12Resource *res, enum pipe_format format, enum d3d12_residency_status residency);
+d3d12_bo_wrap_res(struct d3d12_screen *screen, ID3D12Resource *res, enum d3d12_residency_status residency);
struct d3d12_bo *
d3d12_bo_wrap_buffer(struct d3d12_screen *screen, struct pb_buffer *buf);
case DXGI_FORMAT_NV11:
return 2;
+ case DXGI_FORMAT_R24G8_TYPELESS:
+ case DXGI_FORMAT_R24_UNORM_X8_TYPELESS:
+ case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
+ case DXGI_FORMAT_D24_UNORM_S8_UINT:
+ case DXGI_FORMAT_R32G8X24_TYPELESS:
+ case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS:
+ case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT:
+ case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
+ return 2;
+
default:
return 1;
}
&res->dt_stride);
}
- res->bo = d3d12_bo_wrap_res(screen, d3d12_res, templ->format, init_residency);
+ res->bo = d3d12_bo_wrap_res(screen, d3d12_res, init_residency);
return true;
}
res->first_plane = &res->base.b;
if (!res->bo) {
- res->bo = d3d12_bo_wrap_res(screen, d3d12_res, res->overall_format, d3d12_permanently_resident);
+ res->bo = d3d12_bo_wrap_res(screen, d3d12_res, d3d12_permanently_resident);
}
init_valid_range(res);