summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/ra.h
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/gpu/ra.h')
-rw-r--r--video/out/gpu/ra.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/video/out/gpu/ra.h b/video/out/gpu/ra.h
index 4067b52425..c0c58ac679 100644
--- a/video/out/gpu/ra.h
+++ b/video/out/gpu/ra.h
@@ -26,6 +26,10 @@ struct ra {
// time.
size_t max_shmem;
+ // Maximum number of threads in a compute work group. Set by the RA backend
+ // at init time.
+ size_t max_compute_group_threads;
+
// Maximum push constant size. Set by the RA backend at init time.
size_t max_pushc_size;
@@ -47,8 +51,8 @@ struct ra {
};
// For passing through windowing system specific parameters and such. The
-// names are always internal (except for legacy opengl-cb uses; the libmpv
-// render API uses mpv_render_param_type and maps them to names internally).
+// names are always internal (the libmpv render API uses mpv_render_param_type
+// and maps them to names internally).
// For example, a name="x11" entry has a X11 display as (Display*)data.
struct ra_native_resource {
const char *name;
@@ -76,6 +80,7 @@ enum {
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
+ RA_CAP_SLOW_DR = 1 << 13, // direct rendering is assumed to be slow
};
enum ra_ctype {
@@ -138,8 +143,8 @@ struct ra_tex_params {
// be true depends on ra_format.linear_filter)
bool src_repeat; // if false, clamp texture coordinates to edge
// if true, repeat texture coordinates
- bool non_normalized; // hack for GL_TEXTURE_RECTANGLE OSX idiocy
- // always set to false, except in OSX code
+ bool non_normalized; // hack for GL_TEXTURE_RECTANGLE macOS idiocy
+ // always set to false, except in macOS code
bool external_oes; // hack for GL_TEXTURE_EXTERNAL_OES idiocy
// If non-NULL, the texture will be created with these contents. Using
// this does *not* require setting host_mutable. Otherwise, the initial
@@ -403,7 +408,7 @@ struct ra_fns {
void (*tex_destroy)(struct ra *ra, struct ra_tex *tex);
// Upload data to a texture. This is an extremely common operation. When
- // using a buffer, the contants of the buffer must exactly match the image
+ // using a buffer, the contents of the buffer must exactly match the image
// - conversions between bit depth etc. are not supported. The buffer *may*
// be marked as "in use" while this operation is going on, and the contents
// must not be touched again by the API user until buf_poll returns true.
@@ -456,7 +461,7 @@ struct ra_fns {
// Copy a sub-rectangle from one texture to another. The source/dest region
// is always within the texture bounds. Areas outside the dest region are
- // preserved. The formats of the textures must be losely compatible. The
+ // preserved. The formats of the textures must be loosely compatible. The
// dst texture can be a swapchain framebuffer, but src can not. Only 2D
// textures are supported.
// The textures must have blit_src and blit_dst set, respectively.