uint32_t max_compute_shared_memory_size;
uint32_t max_compute_grid_size[3];
uint32_t max_compute_block_size[3];
+ uint32_t max_texture_2d_size;
+ uint32_t max_texture_3d_size;
+ uint32_t max_texture_cube_size;
};
union virgl_caps {
#include "util/u_format.h"
#include "util/u_format_s3tc.h"
#include "util/u_video.h"
+#include "util/u_math.h"
#include "util/os_time.h"
#include "pipe/p_defines.h"
#include "pipe/p_screen.h"
case PIPE_CAP_TEXTURE_SWIZZLE:
return 1;
case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
+ if (vscreen->caps.caps.v2.max_texture_2d_size)
+ return 1 + util_logbase2(vscreen->caps.caps.v2.max_texture_2d_size);
return 15; /* 16K x 16K */
case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
+ if (vscreen->caps.caps.v2.max_texture_3d_size)
+ return 1 + util_logbase2(vscreen->caps.caps.v2.max_texture_3d_size);
return 9; /* 256 x 256 x 256 */
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
+ if (vscreen->caps.caps.v2.max_texture_cube_size)
+ return 1 + util_logbase2(vscreen->caps.caps.v2.max_texture_cube_size);
return 13; /* 4K x 4K */
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
return 1;