瀏覽代碼

virgl: define MAX_VERTEX_STREAMS based on availability of TF3

Since with gles hosts we lie about the GLSL feature level it is better
to set the number of streams based on actual hosts capabilities.

v2: Make use of feature check level to avoid regressions.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-By:  Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
tags/19.1-branchpoint
Gert Wollny 6 年之前
父節點
當前提交
1e5381f934
共有 2 個文件被更改,包括 3 次插入1 次删除
  1. 1
    0
      src/gallium/drivers/virgl/virgl_hw.h
  2. 2
    1
      src/gallium/drivers/virgl/virgl_screen.c

+ 1
- 0
src/gallium/drivers/virgl/virgl_hw.h 查看文件

@@ -237,6 +237,7 @@ enum virgl_formats {
#define VIRGL_CAP_TRANSFER (1 << 17)
#define VIRGL_CAP_FBO_MIXED_COLOR_FORMATS (1 << 18)
#define VIRGL_CAP_FAKE_FP64 (1 << 19)
#define VIRGL_CAP_TRANSFORM_FEEDBACK3 (1 << 23)

/* virgl bind flags - these are compatible with mesa 10.5 gallium.
* but are fixed, no other should be passed to virgl either.

+ 2
- 1
src/gallium/drivers/virgl/virgl_screen.c 查看文件

@@ -217,7 +217,8 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
case PIPE_CAP_CULL_DISTANCE:
return vscreen->caps.caps.v1.bset.has_cull;
case PIPE_CAP_MAX_VERTEX_STREAMS:
return vscreen->caps.caps.v1.glsl_level >= 400 ? 4 : 1;
return ((vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_TRANSFORM_FEEDBACK3) ||
(vscreen->caps.caps.v2.host_feature_check_version < 2)) ? 4 : 1;
case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
return vscreen->caps.caps.v1.bset.conditional_render_inverted;
case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:

Loading…
取消
儲存