diff options
| author | 2026-08-26 15:08:16 -0400 | |
|---|---|---|
| committer | 2026-08-26 15:08:16 -0400 | |
| commit | 6094c907b26e21f13373bae6bf3306dbae40af3c (patch) | |
| tree | 981864ddb1ab9749d3e10a81edc782311826e101 /subprojects/packagefiles/libplacebo | |
| parent | da9bddc70ff8544f3294b880d719c4605e87ad97 (diff) | |
| download | camu-6094c907b26e21f13373bae6bf3306dbae40af3c.tar.gz camu-6094c907b26e21f13373bae6bf3306dbae40af3c.tar.bz2 camu-6094c907b26e21f13373bae6bf3306dbae40af3c.zip | |
Update deps, small changes and cleanup
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'subprojects/packagefiles/libplacebo')
4 files changed, 196 insertions, 0 deletions
diff --git a/subprojects/packagefiles/libplacebo/android_opengl_custom_dispatch.diff b/subprojects/packagefiles/libplacebo/android_opengl_custom_dispatch.diff new file mode 100644 index 0000000..e8b2ecf --- /dev/null +++ b/subprojects/packagefiles/libplacebo/android_opengl_custom_dispatch.diff @@ -0,0 +1,54 @@ +diff --git a/src/dispatch.c b/src/dispatch.c +index 218b556..70be9aa 100644 +--- a/src/dispatch.c ++++ b/src/dispatch.c +@@ -1541,7 +1541,7 @@ bool pl_dispatch_vertex(pl_dispatch dp, const struct pl_dispatch_vertex_params * + case PL_COORDS_NORMALIZED: + if (params->vertex_flipped) { + proj.mat.m[1][1] = -proj.mat.m[1][1]; +- proj.c[1] += 2.0; ++ //proj.c[1] += 2.0; + } + break; + } +@@ -1566,7 +1566,7 @@ bool pl_dispatch_vertex(pl_dispatch dp, const struct pl_dispatch_vertex_params * + + // Update the scissors + rparams->scissors = params->scissors; +- if (params->vertex_flipped) { ++ if (params->vertex_flipped && rparams->scissors.y0 != rparams->scissors.y1) { + rparams->scissors.y0 = tpars->h - rparams->scissors.y0; + rparams->scissors.y1 = tpars->h - rparams->scissors.y1; + } +diff --git a/src/shaders/custom_mpv.c b/src/shaders/custom_mpv.c +index 1c93da5..bd6450d 100644 +--- a/src/shaders/custom_mpv.c ++++ b/src/shaders/custom_mpv.c +@@ -1191,10 +1191,10 @@ static bool bind_pass_tex(pl_shader sh, pl_str name, + GLSLH("#define HOOKED_pt %.*s_pt \n", PL_STR_FMT(name)); + GLSLH("#define HOOKED_map %.*s_map \n", PL_STR_FMT(name)); + GLSLH("#define HOOKED_mul %.*s_mul \n", PL_STR_FMT(name)); +- GLSLH("#define HOOKED_tex %.*s_tex \n", PL_STR_FMT(name)); +- GLSLH("#define HOOKED_texOff %.*s_texOff \n", PL_STR_FMT(name)); ++ GLSLH("#define HOOKED_tex(pos) %.*s_tex(pos) \n", PL_STR_FMT(name)); ++ GLSLH("#define HOOKED_texOff(off) %.*s_texOff(off) \n", PL_STR_FMT(name)); + if (can_gather) +- GLSLH("#define HOOKED_gather %.*s_gather \n", PL_STR_FMT(name)); ++ GLSLH("#define HOOKED_gather(pos, c) %.*s_gather(pos, c) \n", PL_STR_FMT(name)); + } + + if (mainpresub) { +@@ -1206,10 +1206,10 @@ static bool bind_pass_tex(pl_shader sh, pl_str name, + GLSLH("#define MAIN_pt MAINPRESUB_pt \n"); + GLSLH("#define MAIN_map MAINPRESUB_map \n"); + GLSLH("#define MAIN_mul MAINPRESUB_mul \n"); +- GLSLH("#define MAIN_tex MAINPRESUB_tex \n"); +- GLSLH("#define MAIN_texOff MAINPRESUB_texOff \n"); ++ GLSLH("#define MAIN_tex(pos) MAINPRESUB_tex(pos) \n"); ++ GLSLH("#define MAIN_texOff(off) MAINPRESUB_texOff(off) \n"); + if (can_gather) +- GLSLH("#define MAIN_gather MAINPRESUB_gather \n"); ++ GLSLH("#define MAIN_gather(pos, c) MAINPRESUB_gather(pos, c) \n"); + } + + return true; diff --git a/subprojects/packagefiles/libplacebo/glslang_meson_wrap.diff b/subprojects/packagefiles/libplacebo/glslang_meson_wrap.diff new file mode 100644 index 0000000..d722bef --- /dev/null +++ b/subprojects/packagefiles/libplacebo/glslang_meson_wrap.diff @@ -0,0 +1,40 @@ +diff --git a/src/glsl/meson.build b/src/glsl/meson.build +index c9a8542..499042a 100644 +--- a/src/glsl/meson.build ++++ b/src/glsl/meson.build +@@ -30,7 +30,7 @@ if glslang_req.auto() and shaderc.found() + elif not glslang_req.disabled() + + glslang_deps = [ +- cxx.find_library('glslang-default-resource-limits', required: false) ++ dependency('glslang-default-resource-limits', required: false) + ] + + # meson doesn't respect generator expressions in INTERFACE_LINK_LIBRARIES +@@ -49,7 +49,7 @@ elif not glslang_req.disabled() + static = arg[0] + required = arg[1] + +- spirv = cxx.find_library('SPIRV', required: required, static: static, dirs: vulkan_lib_dirs) ++ spirv = dependency('SPIRV', required: required, static: static) + + if not spirv.found() + continue +@@ -59,7 +59,7 @@ elif not glslang_req.disabled() + + # Glslang 15.0.0 moved some code around, add also linking to glslang, while + # this is not needed for older versions, it will still work. +- glslang_deps += cxx.find_library('glslang', required: required, static: static) ++ glslang_deps += dependency('glslang', required: required, static: static) + + if static + glslang_deps += [ +@@ -78,7 +78,7 @@ elif not glslang_req.disabled() + break + endforeach + +- if found_lib and cc.has_header('glslang/build_info.h') ++ if found_lib + glslang = declare_dependency(dependencies: glslang_deps) + endif + diff --git a/subprojects/packagefiles/libplacebo/no_uniforms_in_vert.diff b/subprojects/packagefiles/libplacebo/no_uniforms_in_vert.diff new file mode 100644 index 0000000..8797d34 --- /dev/null +++ b/subprojects/packagefiles/libplacebo/no_uniforms_in_vert.diff @@ -0,0 +1,89 @@ +diff --git a/src/dispatch.c b/src/dispatch.c +index 218b556..067efc7 100644 +--- a/src/dispatch.c ++++ b/src/dispatch.c +@@ -29,6 +29,7 @@ + + enum { + TMP_PRELUDE, // GLSL version, global definitions, etc. ++ TMP_UNIFORMS, + TMP_MAIN, // main GLSL shader body + TMP_VERT_HEAD, // vertex shader inputs/outputs + TMP_VERT_BODY, // vertex shader body +@@ -304,15 +305,16 @@ static void generate_shaders(pl_dispatch dp, + pl_str_builder shader_body = sh_finalize_internal(sh); + + pl_str_builder pre = dp->tmp[TMP_PRELUDE]; ++ pl_str_builder uni = dp->tmp[TMP_UNIFORMS]; + ADD(pre, "#version %d%s\n", gpu->glsl.version, + (gpu->glsl.gles && gpu->glsl.version > 100) ? " es" : ""); + if (pass_params->type == PL_PASS_COMPUTE) +- ADD(pre, "#extension GL_ARB_compute_shader : enable\n"); ++ ADD(uni, "#extension GL_ARB_compute_shader : enable\n"); + + // Enable this unconditionally if the GPU supports it, since we have no way + // of knowing whether subgroups are being used or not + if (gpu->glsl.subgroup_size) { +- ADD(pre, "#extension GL_KHR_shader_subgroup_basic : enable \n" ++ ADD(uni, "#extension GL_KHR_shader_subgroup_basic : enable \n" + "#extension GL_KHR_shader_subgroup_vote : enable \n" + "#extension GL_KHR_shader_subgroup_arithmetic : enable \n" + "#extension GL_KHR_shader_subgroup_ballot : enable \n" +@@ -360,24 +362,24 @@ static void generate_shaders(pl_dispatch dp, + } + + if (has_img && !gpu->glsl.gles) +- ADD(pre, "#extension GL_ARB_shader_image_load_store : enable\n"); ++ ADD(uni, "#extension GL_ARB_shader_image_load_store : enable\n"); + if (has_ubo) +- ADD(pre, "#extension GL_ARB_uniform_buffer_object : enable\n"); ++ ADD(uni, "#extension GL_ARB_uniform_buffer_object : enable\n"); + if (has_ssbo) +- ADD(pre, "#extension GL_ARB_shader_storage_buffer_object : enable\n"); ++ ADD(uni, "#extension GL_ARB_shader_storage_buffer_object : enable\n"); + if (has_texel) +- ADD(pre, "#extension GL_ARB_texture_buffer_object : enable\n"); ++ ADD(uni, "#extension GL_ARB_texture_buffer_object : enable\n"); + if (has_ext) { + if (gpu->glsl.version >= 300) { +- ADD(pre, "#extension GL_OES_EGL_image_external_essl3 : enable\n"); ++ ADD(uni, "#extension GL_OES_EGL_image_external_essl3 : enable\n"); + } else { +- ADD(pre, "#extension GL_OES_EGL_image_external : enable\n"); ++ ADD(uni, "#extension GL_OES_EGL_image_external : enable\n"); + } + } + if (has_nofmt) +- ADD(pre, "#extension GL_EXT_shader_image_load_formatted : enable\n"); ++ ADD(uni, "#extension GL_EXT_shader_image_load_formatted : enable\n"); + if (has_gather && !gpu->glsl.gles) +- ADD(pre, "#extension GL_ARB_texture_gather : enable\n"); ++ ADD(uni, "#extension GL_ARB_texture_gather : enable\n"); + + if (gpu->glsl.gles) { + // Use 32-bit precision for floats if possible +@@ -527,12 +529,12 @@ static void generate_shaders(pl_dispatch dp, + + case PL_DESC_BUF_UNIFORM: + if (gpu->glsl.vulkan) { +- ADD(pre, "layout(std140, binding=%d) ", desc->binding); ++ ADD(uni, "layout(std140, binding=%d) ", desc->binding); + } else { +- ADD(pre, "layout(std140) "); ++ ADD(uni, "layout(std140) "); + } +- ADD(pre, "uniform "$" ", sh_ident_unpack(desc->name)); +- add_buffer_vars(dp, tmp, pre, sd->buffer_vars, sd->num_buffer_vars); ++ ADD(uni, "uniform "$" ", sh_ident_unpack(desc->name)); ++ add_buffer_vars(dp, tmp, uni, sd->buffer_vars, sd->num_buffer_vars); + break; + + case PL_DESC_BUF_STORAGE: +@@ -599,6 +601,7 @@ static void generate_shaders(pl_dispatch dp, + + pl_str_builder glsl = dp->tmp[TMP_MAIN]; + ADD_CAT(glsl, pre); ++ ADD_CAT(glsl, uni); + + switch(pass_params->type) { + case PL_PASS_RASTER: { diff --git a/subprojects/packagefiles/libplacebo/shaderc_optimize_size.diff b/subprojects/packagefiles/libplacebo/shaderc_optimize_size.diff new file mode 100644 index 0000000..90d75e1 --- /dev/null +++ b/subprojects/packagefiles/libplacebo/shaderc_optimize_size.diff @@ -0,0 +1,13 @@ +diff --git a/src/glsl/spirv_shaderc.c b/src/glsl/spirv_shaderc.c +index 3afd750..8c3d5e0 100644 +--- a/src/glsl/spirv_shaderc.c ++++ b/src/glsl/spirv_shaderc.c +@@ -112,7 +112,7 @@ static pl_str shaderc_compile(pl_spirv spirv, void *alloc, + return (pl_str) {0}; + + shaderc_compile_options_set_optimization_level(opts, +- shaderc_optimization_level_performance); ++ shaderc_optimization_level_size); + shaderc_compile_options_set_target_spirv(opts, spirv->version.spv_version); + shaderc_compile_options_set_target_env(opts, shaderc_target_env_vulkan, + spirv->version.env_version); |