فهرست منبع

Add note about uniform buffer size limit to Shading Language

tetrapod00 9 ماه پیش
والد
کامیت
f911b1310a
1فایلهای تغییر یافته به همراه13 افزوده شده و 0 حذف شده
  1. 13 0
      tutorials/shaders/shader_reference/shading_language.rst

+ 13 - 0
tutorials/shaders/shader_reference/shading_language.rst

@@ -793,6 +793,19 @@ GDScript:
           in the shader. It must match *exactly* to the name of the uniform in
           in the shader. It must match *exactly* to the name of the uniform in
           the shader or else it will not be recognized.
           the shader or else it will not be recognized.
 
 
+.. note:: There is a limit to the total size of shader uniforms that you can use
+          in a single shader. On most desktop platforms, this limit is ``65536``
+          bytes, or 4096 ``vec4`` uniforms. On mobile platforms, the limit is
+          typically ``16384`` bytes, or 1024 ``vec4`` uniforms. Vector uniforms
+          smaller than a ``vec4``, such as ``vec2`` or ``vec3``, are padded to
+          the size of a ``vec4``. Scalar uniforms such as ``int`` or ``float``
+          are not padded, and ``bool`` is padded to the size of an ``int``.
+          
+          Arrays count as the total size of their contents. If you need a uniform
+          array that is larger than this limit, consider packing the data into a
+          texture instead, since the *contents* of a texture do not count towards
+          this limit, only the size of the sampler uniform.
+
 Any GLSL type except for *void* can be a uniform. Additionally, Godot provides
 Any GLSL type except for *void* can be a uniform. Additionally, Godot provides
 optional shader hints to make the compiler understand for what the uniform is
 optional shader hints to make the compiler understand for what the uniform is
 used, and how the editor should allow users to modify it.
 used, and how the editor should allow users to modify it.