mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 00:00:12 +01:00
virgl: report actual max-texture sizes
Instead of doing conservative guesses, we should report the max levels based on the max sizes we get from GL on the host. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Jakob Bornecrantz <jakob@collabora.com>
This commit is contained in:
parent
825aaeae39
commit
98b3b6367a
2 changed files with 10 additions and 0 deletions
|
|
@ -347,6 +347,9 @@ struct virgl_caps_v2 {
|
|||
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 {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#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"
|
||||
|
|
@ -72,10 +73,16 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue