diff --git a/panda/src/gobj/texture.cxx b/panda/src/gobj/texture.cxx index d053d0fda1..b81c00c378 100644 --- a/panda/src/gobj/texture.cxx +++ b/panda/src/gobj/texture.cxx @@ -1756,7 +1756,14 @@ set_size_padded(int x, int y, int z) { if (do_get_auto_texture_scale(cdata) != ATS_none) { do_set_x_size(cdata, up_to_power_2(x)); do_set_y_size(cdata, up_to_power_2(y)); - do_set_z_size(cdata, up_to_power_2(z)); + + if (cdata->_texture_type == TT_3d_texture) { + // Only pad 3D textures. It does not make sense + // to do so for cube maps or 2D texture arrays. + do_set_z_size(cdata, up_to_power_2(z)); + } else { + do_set_z_size(cdata, z); + } } else { do_set_x_size(cdata, x); do_set_y_size(cdata, y); @@ -5013,7 +5020,7 @@ do_set_component_type(CData *cdata, Texture::ComponentType component_type) { break; case T_unsigned_int_24_8: - //FIXME: I have no idea... + cdata->_component_width = 4; break; } }