Я разрабатываю приложение для вкладки галактики Android 10.1, у которой есть Tegra 250 T20. Я пишу шейдер в GLSL, который имеет цикл for(). Я хочу, чтобы цикл for() заканчивался раньше в некоторых условиях.Шлейф фрагмента Android GLSL на NVIDIA tegra2
Что я вижу, так это то, что шейдерный компилятор разматывает цикл, и выполняется весь размотанный код, который убивает производительность.
Возникает вопрос: поддерживает ли Tegra 250 T20 инструкции по исполнению? И если да, то как я могу сказать, что компилятор действительно их использует.
Большое спасибо за любые ответы.
ETA: glGetString (GLES20.GL_SHADING_LANGUAGE_VERSION) возвращает «OpenGL ES GLSL 1.00».
Также, если GLSL не может справиться с этим, как я могу написать на языке сборки ARB, чтобы сделать это сам?
ETA2: GL_EXTENSIONS имеет это: GL_NV_platform_binary GL_OES_rgb8_rgba8 GL_OES_EGL_sync GL_OES_fbo_render_mipmap GL_NV_depth_nonlinear GL_NV_draw_path GL_NV_texture_npot_2D_mipmap GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_vertex_half_float GL_NV_framebuffer_vertex_attrib_array GL_NV_coverage_sample GL_OES_mapbuffer GL_ARB_draw_buffers GL_EXT_Cg_shader GL_EXT _packed_float GL_OES_texture_half_float GL_OES_texture_float GL_EXT_texture_array GL_OES_compressed_ETC1_RGB8_texture GL_EXT_texture_compression_latc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_NV_get_tex_image GL_NV_read_buffer GL_NV_shader_framebuffer_fetch GL_NV_fbo_color_attachments GL_EXT_bgra GL_EXT_texture_format_BGRA8888 GL_EXT_unpack_subimage GL_NV_texture_compression_s3tc_update
Спасибо за ваш ответ! GlGetString (GLES20.GL_SHADING_LANGUAGE_VERSION) возвращает это: OpenGL ES GLSL 1.00. – dashxdr
Да: так вам показалось, что вам не повезло. – devsnd