mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
i965: Make a helper function intel_miptree_set_total_width_height()
and some more code refactoring. No functional changes in this patch. Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
9111377978
commit
556b2fbd24
1 changed files with 51 additions and 44 deletions
|
|
@ -710,6 +710,56 @@ brw_miptree_choose_tiling(struct brw_context *brw,
|
|||
return I915_TILING_Y | I915_TILING_X;
|
||||
}
|
||||
|
||||
static void
|
||||
intel_miptree_set_total_width_height(struct brw_context *brw,
|
||||
struct intel_mipmap_tree *mt)
|
||||
{
|
||||
switch (mt->target) {
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
if (brw->gen == 4) {
|
||||
/* Gen4 stores cube maps as 3D textures. */
|
||||
assert(mt->physical_depth0 == 6);
|
||||
brw_miptree_layout_texture_3d(brw, mt);
|
||||
} else {
|
||||
/* All other hardware stores cube maps as 2D arrays. */
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
}
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_3D:
|
||||
if (brw->gen >= 9)
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
else
|
||||
brw_miptree_layout_texture_3d(brw, mt);
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_1D_ARRAY:
|
||||
case GL_TEXTURE_2D_ARRAY:
|
||||
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
|
||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
break;
|
||||
|
||||
default:
|
||||
switch (mt->msaa_layout) {
|
||||
case INTEL_MSAA_LAYOUT_UMS:
|
||||
case INTEL_MSAA_LAYOUT_CMS:
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
break;
|
||||
case INTEL_MSAA_LAYOUT_NONE:
|
||||
case INTEL_MSAA_LAYOUT_IMS:
|
||||
if (use_linear_1d_layout(brw, mt))
|
||||
gen9_miptree_layout_1d(mt);
|
||||
else
|
||||
brw_miptree_layout_2d(mt);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
DBG("%s: %dx%dx%d\n", __func__,
|
||||
mt->total_width, mt->total_height, mt->cpp);
|
||||
}
|
||||
|
||||
void
|
||||
brw_miptree_layout(struct brw_context *brw,
|
||||
|
|
@ -754,50 +804,7 @@ brw_miptree_layout(struct brw_context *brw,
|
|||
mt->align_h = intel_vertical_texture_alignment_unit(brw, mt);
|
||||
}
|
||||
|
||||
switch (mt->target) {
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
if (brw->gen == 4) {
|
||||
/* Gen4 stores cube maps as 3D textures. */
|
||||
assert(mt->physical_depth0 == 6);
|
||||
brw_miptree_layout_texture_3d(brw, mt);
|
||||
} else {
|
||||
/* All other hardware stores cube maps as 2D arrays. */
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
}
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_3D:
|
||||
if (brw->gen >= 9)
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
else
|
||||
brw_miptree_layout_texture_3d(brw, mt);
|
||||
break;
|
||||
|
||||
case GL_TEXTURE_1D_ARRAY:
|
||||
case GL_TEXTURE_2D_ARRAY:
|
||||
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
|
||||
case GL_TEXTURE_CUBE_MAP_ARRAY:
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
break;
|
||||
|
||||
default:
|
||||
switch (mt->msaa_layout) {
|
||||
case INTEL_MSAA_LAYOUT_UMS:
|
||||
case INTEL_MSAA_LAYOUT_CMS:
|
||||
brw_miptree_layout_texture_array(brw, mt);
|
||||
break;
|
||||
case INTEL_MSAA_LAYOUT_NONE:
|
||||
case INTEL_MSAA_LAYOUT_IMS:
|
||||
if (use_linear_1d_layout(brw, mt))
|
||||
gen9_miptree_layout_1d(mt);
|
||||
else
|
||||
brw_miptree_layout_2d(mt);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
DBG("%s: %dx%dx%d\n", __func__,
|
||||
mt->total_width, mt->total_height, mt->cpp);
|
||||
intel_miptree_set_total_width_height(brw, mt);
|
||||
|
||||
if (!mt->total_width || !mt->total_height) {
|
||||
intel_miptree_release(&mt);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue