vo_gpu: add RA_CAP for gl_NumWorkGroups

SPIRV-Cross doesn't support this for the time being. It's possible this
could go away again at a later date.
This commit is contained in:
Niklas Haas authored and Kevin Mitchell committed 2018-02-05 23:11:18 -08:00
1 parent 5997248505
commit 0870859e3d
3 files changed
+3 -1

No files matched your search

+1
View File
@@ -54,6 +54,7 @@ enum {
RA_CAP_GATHER = 1 << 9, // supports textureGather in GLSL
RA_CAP_FRAGCOORD = 1 << 10, // supports reading from gl_FragCoord
RA_CAP_PARALLEL_COMPUTE = 1 << 11, // supports parallel compute shaders
RA_CAP_NUM_GROUPS = 1 << 12, // supports gl_NumWorkGroups
};
enum ra_ctype {
+1
View File
@@ -101,6 +101,7 @@ static int ra_init_gl(struct ra *ra, GL *gl)
{RA_CAP_TEX_1D, MPGL_CAP_1D_TEX},
{RA_CAP_TEX_3D, MPGL_CAP_3D_TEX},
{RA_CAP_COMPUTE, MPGL_CAP_COMPUTE_SHADER},
{RA_CAP_NUM_GROUPS, MPGL_CAP_COMPUTE_SHADER},
{RA_CAP_NESTED_ARRAY, MPGL_CAP_NESTED_ARRAY},
};
+1 -1
View File
@@ -209,7 +209,7 @@ struct ra *ra_create_vk(struct mpvk_ctx *vk, struct mp_log *log)
ra->max_pushc_size = vk->limits.maxPushConstantsSize;
if (vk->pool_compute) {
ra->caps |= RA_CAP_COMPUTE;
ra->caps |= RA_CAP_COMPUTE | RA_CAP_NUM_GROUPS;
// If we have more compute queues than graphics queues, we probably
// want to be using them. (This seems mostly relevant for AMD)
if (vk->pool_compute->num_queues > vk->pool_graphics->num_queues)