Creating resource group General Creating resource group Internal Creating resource group Autodetect SceneManagerFactory for type 'DefaultSceneManager' registered. Registering ResourceManager for type Material Registering ResourceManager for type Mesh Registering ResourceManager for type Mesh2 Registering ResourceManager for type OldSkeleton MovableObjectFactory for type 'ParticleSystem' registered. ArchiveFactory for archive type FileSystem registered. ArchiveFactory for archive type Zip registered. ArchiveFactory for archive type EmbeddedZip registered. DDS codec registering FreeImage version: 3.15.3 This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic ETC codec registering Registering ResourceManager for type HighLevelGpuProgram MovableObjectFactory for type 'Entity' registered. MovableObjectFactory for type 'Item' registered. MovableObjectFactory for type 'Light' registered. MovableObjectFactory for type 'BillboardSet' registered. MovableObjectFactory for type 'ManualObject' registered. MovableObjectFactory for type 'BillboardChain' registered. MovableObjectFactory for type 'RibbonTrail' registered. Loading library /home/spacegaier/dev/ogre_build_2_1/lib/RenderSystem_GL3Plus Installing plugin: GL 3+ RenderSystem OpenGL 3+ Rendering Subsystem created. Plugin successfully installed Loading library /home/spacegaier/dev/ogre_build_2_1/lib/Plugin_ParticleFX Installing plugin: ParticleFX Particle Emitter Type 'Point' registered Particle Emitter Type 'Box' registered Particle Emitter Type 'Ellipsoid' registered Particle Emitter Type 'Cylinder' registered Particle Emitter Type 'Ring' registered Particle Emitter Type 'HollowEllipsoid' registered Particle Affector Type 'LinearForce' registered Particle Affector Type 'ColourFader' registered Particle Affector Type 'ColourFader2' registered Particle Affector Type 'ColourImage' registered Particle Affector Type 'ColourInterpolator' registered Particle Affector Type 'Scaler' registered Particle Affector Type 'Rotator' registered Particle Affector Type 'DirectionRandomiser' registered Particle Affector Type 'DeflectorPlane' registered Plugin successfully installed *-*-* OGRE Initialising *-*-* Version 2.1.0unstable (Tindalos) CPU Identifier & Features ------------------------- * CPU ID: GenuineIntel: Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz * Logical cores: 3 * SSE: yes * SSE2: yes * SSE3: yes * MMX: yes * MMXEXT: yes * 3DNOW: no * 3DNOWEXT: no * CMOV: yes * TSC: yes * FPU: yes * PRO: yes * HT: no ------------------------- ****************************** *** Starting GLX Subsystem *** ****************************** GL3PlusRenderSystem::_createRenderWindow "PBS Materials Sample", 1280x720 windowed miscParams: FSAA=1 gamma=true parentWindowHandle=69206028 title=PBS Materials Sample vsync=No Created GL 3.3 context GLXWindow::create used FBConfigID = 124 GL_VERSION = 3.3 (Core Profile) Mesa 10.6.0-devel (git-3d4d77a 2015-03-03 trusty-oibaf-ppa) GL_VENDOR = VMware, Inc. GL_RENDERER = Gallium 0.4 on llvmpipe (LLVM 3.6, 128 bits) GL_EXTENSIONS = GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clip_control GL_ARB_compressed_texture_pixel_storage GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_conservative_depth GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_packing GL_ARB_shading_language_420pack GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_float GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_rectangle GL_ARB_texture_rgb10_a2ui GL_ARB_texture_rg GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_binding GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_sRGB GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_shader_integer_mix GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_OES_EGL_image GL_OES_read_format GL_KHR_debug GL_KHR_context_flush_control GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_trinary_minmax GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ATI_blend_equation_separate GL_ATI_texture_compression_3dc GL_ATI_texture_float GL_ATI_texture_mirror_once GL_IBM_multimode_draw_arrays GL_MESA_pack_invert GL_MESA_texture_signed_rgba GL_MESA_ycbcr_texture GL_NV_conditional_render GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_S3_s3tc Supported GLX extensions: GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_MESA_multithread_makecurrent GLX_MESA_query_renderer GLX_OML_swap_method GLX_SGI_make_current_read GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_EXT_texture_from_pixmap ************************************** *** OpenGL 3+ Renderer Started *** ************************************** Registering ResourceManager for type GpuProgram GL3+: Using FBOs for rendering to textures FBO PF_UNKNOWN depth/stencil support: D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 GLSL IR for linked fragment program 0: ( (declare (shader_in ) vec4 gl_Color) (declare (shader_out ) vec4 gl_FragColor) (declare (temporary ) vec4 compiler_temp) (function main (signature void (parameters ) ( (assign (xyzw) (var_ref compiler_temp) (var_ref gl_Color) ) (assign (xyzw) (var_ref gl_FragColor) (var_ref compiler_temp) ) )) ) ) FBO PF_L8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_L16 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_BYTE_LA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R5G6B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_A8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R8G8B8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_DEPTH depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R3G3B2 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_SHORT_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R11G11B10_FLOAT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R8G8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R8G8B8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R8G8B8A8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R16G16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R16G16B16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 FBO PF_R16G16B16A16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_BYTE_LA PF_R5G6B5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_A8B8G8R8 PF_B8G8R8A8 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_R8G8B8A8 PF_DEPTH PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_SHORT_GR PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB PF_R11G11B10_FLOAT PF_R8_SNORM PF_R8G8_SNORM PF_R8G8B8_SNORM PF_R8G8B8A8_SNORM PF_R16_SNORM PF_R16G16_SNORM PF_R16G16B16_SNORM PF_R16G16B16A16_SNORM RenderSystem capabilities ------------------------- RenderSystem Name: OpenGL 3+ Rendering Subsystem GPU Vendor: unknown Device Name: Gallium 0.4 on llvmpipe (LLVM 3.6, 128 bits) Driver Version: 3.3.0.0 * Fixed function pipeline: no * Hardware generation of mipmaps: yes * Texture blending: yes * Anisotropic texture filtering: no * Dot product texture operation: yes * Cube mapping: yes * Hardware stencil buffer: yes - Stencil depth: 8 - Two sided stencil support: yes - Wrap stencil values: yes * Hardware vertex / index buffers: yes * 32-bit index buffers: yes * Vertex programs: yes * Number of floating-point constants for vertex programs: 16384 * Number of integer constants for vertex programs: 16384 * Number of boolean constants for vertex programs: 16384 * Fragment programs: yes * Number of floating-point constants for fragment programs: 16384 * Number of integer constants for fragment programs: 16384 * Number of boolean constants for fragment programs: 16384 * Geometry programs: yes * Number of floating-point constants for geometry programs: 16384 * Number of integer constants for geometry programs: 16384 * Number of boolean constants for geometry programs: 16384 * Tessellation Hull programs: no * Number of floating-point constants for tessellation hull programs: 0 * Number of integer constants for tessellation hull programs: 0 * Number of boolean constants for tessellation hull programs: 0 * Tessellation Domain programs: no * Number of floating-point constants for tessellation domain programs: 0 * Number of integer constants for tessellation domain programs: 0 * Number of boolean constants for tessellation domain programs: 0 * Compute programs: no * Number of floating-point constants for compute programs: 0 * Number of integer constants for compute programs: 0 * Number of boolean constants for compute programs: 0 * Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 * Texture Compression: yes - DXT: yes - VTC: no - PVRTC: no - ATC: no - ETC1: no - ETC2: yes - BC4/BC5: yes - BC6H/BC7: no * Hardware Occlusion Query: yes * User clip planes: yes * VET_UBYTE4 vertex element type: yes * Infinite far plane projection: yes * Hardware render-to-texture: yes * Floating point textures: yes * Non-power-of-two textures: yes * 1d textures: yes * Volume textures: yes * Max Texture resolution (2D) 8192 * Max Texture resolution (3D) 2048 * Max Texture resolution (Cubemaps) 8192 * Multiple Render Targets: 8 - With different bit depths: yes * Point Sprites: yes * Extended point parameters: yes * Max Point Size: 255 * Vertex texture fetch: yes * Number of world matrices: 0 * Number of texture units: 16 * Stencil buffer depth: 8 * Number of vertex blend matrices: 0 - Max vertex textures: 18 - Vertex textures shared: yes * Render to Vertex Buffer : yes * Hardware Atomic Counters: no * GL 1.5 without VBO workaround: no * Frame Buffer objects: yes * Frame Buffer objects (ARB extension): no * Frame Buffer objects (ATI extension): no * PBuffer support: no * GL 1.5 without HW-occlusion workaround: no * Vertex Array Objects: yes * Separate shader objects: yes Registering ResourceManager for type Texture DefaultWorkQueue('Root') initialising on thread main. Particle Renderer Type 'billboard' registered OverlayElementFactory for type Panel registered. OverlayElementFactory for type BorderPanel registered. OverlayElementFactory for type TextArea registered. Registering ResourceManager for type Font Creating resource group Essential Added resource location '/home/spacegaier/dev/ogre_source_2_1/Samples/Media/packs/DebugPack.zip' of type 'Zip' to resource group 'Essential' Creating resource group Popular Added resource location '/home/spacegaier/dev/ogre_source_2_1/Samples/Media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'Popular' Added resource location '/home/spacegaier/dev/ogre_source_2_1/Samples/Media/models' of type 'FileSystem' to resource group 'Popular' Added resource location '/home/spacegaier/dev/ogre_source_2_1/Samples/Media/materials/textures' of type 'FileSystem' to resource group 'Popular' Added resource location '/home/spacegaier/dev/ogre_source_2_1/Samples/Media/materials/textures/Cubemaps' of type 'FileSystem' to resource group 'Popular' Added resource location '/home/spacegaier/dev/ogre_source_2_1/Samples/Media/2.0/scripts/materials/PbsMaterials' of type 'FileSystem' to resource group 'General' Parsing scripts for resource group Autodetect Finished parsing scripts for resource group Autodetect Creating resources for group Autodetect All done Parsing scripts for resource group Essential Parsing script Materials.material Parsing script DebugFont.fontdef Finished parsing scripts for resource group Essential Creating resources for group Essential All done Parsing scripts for resource group General Parsing script PbsMaterials.material Texture: loading Rocks_Diffuse.tga as Rocks_Diffuse.tga Texture: loading Rocks_Normal.tga as Rocks_Normal.tga Texture: loading Rocks_Spec.tga as Rocks_Spec.tga Texture: loading nm_up.png as nm_up.png Texture: loading 1d_debug.png as 1d_debug.png Texture: loading MRAMOR6X6.jpg as MRAMOR6X6.jpg Texture: loading nm_bk.png as nm_bk.png Texture: loading NMBumpsOut.png as NMBumpsOut.png Texture: loading MtlPlat2.jpg as MtlPlat2.jpg Texture: loading NMBalls.png as NMBalls.png Texture: loading MRAMOR-bump.jpg as MRAMOR-bump.jpg Finished parsing scripts for resource group General Creating resources for group General All done Parsing scripts for resource group Internal Finished parsing scripts for resource group Internal Creating resources for group Internal All done Parsing scripts for resource group Popular Parsing script PbsMaterials.compositor Parsing script StereoRendering.compositor Parsing script ShadowMapDebugging.compositor Finished parsing scripts for resource group Popular Creating resources for group Popular All done Mesh: Loading Sphere1000.mesh. Mesh: Loading Cube_d.mesh. Texture: loading SaintPetersBasilica.dds as SaintPetersBasilica.dds GLSL compile log: 542113792VertexShader_vs 0:11(1): error: #extension directive is not allowed in the middle of a shader Vertex Program 542113792VertexShader_vs failed to compile. See compile log above for details. GLSL compiled: 542113792PixelShader_ps GLSL IR for linked fragment program 3: ( (declare (shader_in ) vec4 packed:depth) (declare (shader_out ) float outColour) (declare (temporary ) float outColour) (function main (signature void (parameters ) ( (assign (x) (var_ref outColour) (swiz x (var_ref packed:depth) )) (assign (x) (var_ref outColour@2) (var_ref outColour) ) )) ) ) Vertex Shader: 542113792VertexShader_vs Fragment Shader: 542113792PixelShader_ps GLSL program result : Font DebugFont using texture size 512x256 Info: Freetype returned null for character 160 in font DebugFont Texture: DebugFontTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) Internal format is PF_BYTE_LA,512x256x1. GLSL compile log: 545460586VertexShader_vs 0:11(1): error: #extension directive is not allowed in the middle of a shader Vertex Program 545460586VertexShader_vs failed to compile. See compile log above for details. GLSL compiled: 545460586PixelShader_ps GLSL IR for linked fragment program 7: ( (declare (shader_in ) vec4 packed:depth,normal.x,uv0) (declare (shader_in flat) ivec4 packed:drawId) (declare (shader_in ) vec4 packed:normal.yz,pos.xy) (declare () vec3 normal) (declare (shader_in ) vec4 packed:pos.z) (declare () vec3 pos) (declare (shader_in ) vec4 posL0) (declare (shader_in ) vec4 posL1) (declare (shader_in ) vec4 posL2) (declare (shader_in ) vec4 posL3) (declare (shader_in ) vec4 posL4) (declare () vec2 uv0) (declare (uniform ) InstanceBuffer instance) (declare (uniform ) MaterialBuf materialArray) (declare (uniform ) PassBuffer pass) (declare (shader_out ) vec4 outColour) (declare (temporary ) vec4 outColour) (declare (uniform ) (array sampler2DArray 2) textureMaps) (declare () uint roughnessIdx) (declare () float ROUGHNESS) (declare (uniform ) (array sampler2D 5) texShadowMap) (function main (signature void (parameters ) ( (assign (x) (var_ref normal) (swiz w (var_ref packed:depth,normal.x,uv0) )) (assign (yz) (var_ref normal) (swiz xy (var_ref packed:normal.yz,pos.xy) )) (assign (xy) (var_ref pos) (swiz zw (var_ref packed:normal.yz,pos.xy) )) (assign (z) (var_ref pos) (swiz x (var_ref packed:pos.z) )) (assign (xy) (var_ref uv0) (swiz xy (var_ref packed:depth,normal.x,uv0) )) (declare () vec3 tmpColour) (declare () vec3 lightDir) (declare () vec3 finalColour) (declare () float fShadow) (declare (temporary ) vec4 ubo_load_temp_kD) (declare (temporary ) vec4 ubo_load_temp_kS) (declare (temporary ) vec4 ubo_load_temp_F0) (declare (temporary ) vec4 ubo_load_temp_detailOffsetScaleD_0) (declare (temporary ) uvec4 ubo_load_temp_indices0_3) (declare (temporary ) uint ubo_load_temp_offset) (assign (x) (var_ref ubo_load_temp_offset) (expression uint * (expression uint & (swiz x (expression uvec4 ubo_load (constant uint (0)) (expression uint * (expression uint i2u (swiz x (var_ref packed:drawId) )) (constant uint (16)) ) ) )(constant uint (511)) ) (constant uint (240)) ) ) (assign (xyzw) (var_ref ubo_load_temp_kD) (expression vec4 ubo_load (constant uint (1)) (var_ref ubo_load_temp_offset) ) ) (assign (xyzw) (var_ref ubo_load_temp_kS) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (16)) ) ) ) (assign (xyzw) (var_ref ubo_load_temp_F0) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (32)) ) ) ) (assign (xyzw) (var_ref ubo_load_temp_detailOffsetScaleD_0) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (80)) ) ) ) (assign (xyzw) (var_ref ubo_load_temp_indices0_3) (expression uvec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (208)) ) ) ) (assign (x) (var_ref roughnessIdx) (expression uint >> (swiz y (var_ref ubo_load_temp_indices0_3) )(constant uint (16)) ) ) (declare (temporary ) vec3 vec_ctor) (assign (xy) (var_ref vec_ctor) (expression vec2 + (expression vec2 * (swiz xy (var_ref packed:depth,normal.x,uv0) )(swiz zw (var_ref ubo_load_temp_detailOffsetScaleD_0) )) (swiz xy (var_ref ubo_load_temp_detailOffsetScaleD_0) )) ) (assign (z) (var_ref vec_ctor) (expression float u2f (expression uint >> (swiz z (var_ref ubo_load_temp_indices0_3) )(constant uint (16)) ) ) ) (declare (temporary ) vec4 texture_retval) (assign (xyzw) (var_ref texture_retval) (tex vec4 (array_ref (var_ref textureMaps) (constant int (1)) ) (var_ref vec_ctor) 0 1 () )) (declare (temporary ) vec3 normalize_retval) (assign (xyz) (var_ref normalize_retval) (expression vec3 * (var_ref normal) (expression float rsq (expression float dot (var_ref normal) (var_ref normal) ) ) ) ) (assign (x) (var_ref fShadow) (constant float (1.000000)) ) (declare (temporary ) float ubo_load_temp) (assign (x) (var_ref ubo_load_temp) (expression float ubo_load (constant uint (2)) (constant uint (576)) ) ) (if (expression bool <= (swiz z (var_ref packed:depth,normal.x,uv0) )(var_ref ubo_load_temp) ) ( (declare (temporary ) vec2 ubo_load_temp@37) (assign (xy) (var_ref ubo_load_temp@37) (expression vec2 ubo_load (constant uint (2)) (constant uint (200)) ) ) (declare () float c) (declare (temporary ) vec2 assignment_tmp) (assign (xy) (var_ref assignment_tmp) (expression vec2 * (swiz xy (var_ref posL0) )(expression float rcp (swiz w (var_ref posL0) )) ) ) (declare (temporary ) vec3 vec_ctor@38) (assign (xy) (var_ref vec_ctor@38) (var_ref ubo_load_temp@37) ) (assign (z) (var_ref vec_ctor@38) (expression float neg (swiz x (var_ref ubo_load_temp@37) )) ) (declare (temporary ) vec3 assignment_tmp@39) (assign (xyz) (var_ref assignment_tmp@39) (expression vec3 * (var_ref vec_ctor@38) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@40) (assign (xyzw) (var_ref texture_retval@40) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (expression vec2 neg (swiz xy (var_ref assignment_tmp@39) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@40) )) ( (assign (x) (var_ref conditional_tmp) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float i2f (var_ref conditional_tmp) ) ) (declare (temporary ) vec4 texture_retval@41) (assign (xyzw) (var_ref texture_retval@41) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (expression vec2 neg (swiz zy (var_ref assignment_tmp@39) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@42) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@41) )) ( (assign (x) (var_ref conditional_tmp@42) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@42) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@42) ) ) ) (declare (temporary ) vec4 texture_retval@43) (assign (xyzw) (var_ref texture_retval@43) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (swiz zy (var_ref assignment_tmp@39) )) 0 1 () )) (declare (temporary ) int conditional_tmp@44) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@43) )) ( (assign (x) (var_ref conditional_tmp@44) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@44) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@44) ) ) ) (declare (temporary ) vec4 texture_retval@45) (assign (xyzw) (var_ref texture_retval@45) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (swiz xy (var_ref assignment_tmp@39) )) 0 1 () )) (declare (temporary ) int conditional_tmp@46) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@45) )) ( (assign (x) (var_ref conditional_tmp@46) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@46) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@46) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c) (constant float (0.250000)) ) ) ) ( (declare (temporary ) float ubo_load_temp@47) (assign (x) (var_ref ubo_load_temp@47) (expression float ubo_load (constant uint (2)) (constant uint (580)) ) ) (if (expression bool <= (swiz z (var_ref packed:depth,normal.x,uv0) )(var_ref ubo_load_temp@47) ) ( (declare (temporary ) vec2 ubo_load_temp@48) (assign (xy) (var_ref ubo_load_temp@48) (expression vec2 ubo_load (constant uint (2)) (constant uint (280)) ) ) (declare () float c@49) (declare (temporary ) vec2 assignment_tmp@50) (assign (xy) (var_ref assignment_tmp@50) (expression vec2 * (swiz xy (var_ref posL1) )(expression float rcp (swiz w (var_ref posL1) )) ) ) (declare (temporary ) vec3 vec_ctor@51) (assign (xy) (var_ref vec_ctor@51) (var_ref ubo_load_temp@48) ) (assign (z) (var_ref vec_ctor@51) (expression float neg (swiz x (var_ref ubo_load_temp@48) )) ) (declare (temporary ) vec3 assignment_tmp@52) (assign (xyz) (var_ref assignment_tmp@52) (expression vec3 * (var_ref vec_ctor@51) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@53) (assign (xyzw) (var_ref texture_retval@53) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@50) (expression vec2 neg (swiz xy (var_ref assignment_tmp@52) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@54) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@53) )) ( (assign (x) (var_ref conditional_tmp@54) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@54) (constant int (0)) ) )) (assign (x) (var_ref c@49) (expression float i2f (var_ref conditional_tmp@54) ) ) (declare (temporary ) vec4 texture_retval@55) (assign (xyzw) (var_ref texture_retval@55) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@50) (expression vec2 neg (swiz zy (var_ref assignment_tmp@52) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@56) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@55) )) ( (assign (x) (var_ref conditional_tmp@56) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@56) (constant int (0)) ) )) (assign (x) (var_ref c@49) (expression float + (var_ref c@49) (expression float i2f (var_ref conditional_tmp@56) ) ) ) (declare (temporary ) vec4 texture_retval@57) (assign (xyzw) (var_ref texture_retval@57) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@50) (swiz zy (var_ref assignment_tmp@52) )) 0 1 () )) (declare (temporary ) int conditional_tmp@58) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@57) )) ( (assign (x) (var_ref conditional_tmp@58) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@58) (constant int (0)) ) )) (assign (x) (var_ref c@49) (expression float + (var_ref c@49) (expression float i2f (var_ref conditional_tmp@58) ) ) ) (declare (temporary ) vec4 texture_retval@59) (assign (xyzw) (var_ref texture_retval@59) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@50) (swiz xy (var_ref assignment_tmp@52) )) 0 1 () )) (declare (temporary ) int conditional_tmp@60) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@59) )) ( (assign (x) (var_ref conditional_tmp@60) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@60) (constant int (0)) ) )) (assign (x) (var_ref c@49) (expression float + (var_ref c@49) (expression float i2f (var_ref conditional_tmp@60) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c@49) (constant float (0.250000)) ) ) ) ( (declare (temporary ) float ubo_load_temp@61) (assign (x) (var_ref ubo_load_temp@61) (expression float ubo_load (constant uint (2)) (constant uint (584)) ) ) (if (expression bool <= (swiz z (var_ref packed:depth,normal.x,uv0) )(var_ref ubo_load_temp@61) ) ( (declare (temporary ) vec2 ubo_load_temp@62) (assign (xy) (var_ref ubo_load_temp@62) (expression vec2 ubo_load (constant uint (2)) (constant uint (360)) ) ) (declare () float c@63) (declare (temporary ) vec2 assignment_tmp@64) (assign (xy) (var_ref assignment_tmp@64) (expression vec2 * (swiz xy (var_ref posL2) )(expression float rcp (swiz w (var_ref posL2) )) ) ) (declare (temporary ) vec3 vec_ctor@65) (assign (xy) (var_ref vec_ctor@65) (var_ref ubo_load_temp@62) ) (assign (z) (var_ref vec_ctor@65) (expression float neg (swiz x (var_ref ubo_load_temp@62) )) ) (declare (temporary ) vec3 assignment_tmp@66) (assign (xyz) (var_ref assignment_tmp@66) (expression vec3 * (var_ref vec_ctor@65) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@67) (assign (xyzw) (var_ref texture_retval@67) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@64) (expression vec2 neg (swiz xy (var_ref assignment_tmp@66) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@68) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@67) )) ( (assign (x) (var_ref conditional_tmp@68) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@68) (constant int (0)) ) )) (assign (x) (var_ref c@63) (expression float i2f (var_ref conditional_tmp@68) ) ) (declare (temporary ) vec4 texture_retval@69) (assign (xyzw) (var_ref texture_retval@69) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@64) (expression vec2 neg (swiz zy (var_ref assignment_tmp@66) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@70) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@69) )) ( (assign (x) (var_ref conditional_tmp@70) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@70) (constant int (0)) ) )) (assign (x) (var_ref c@63) (expression float + (var_ref c@63) (expression float i2f (var_ref conditional_tmp@70) ) ) ) (declare (temporary ) vec4 texture_retval@71) (assign (xyzw) (var_ref texture_retval@71) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@64) (swiz zy (var_ref assignment_tmp@66) )) 0 1 () )) (declare (temporary ) int conditional_tmp@72) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@71) )) ( (assign (x) (var_ref conditional_tmp@72) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@72) (constant int (0)) ) )) (assign (x) (var_ref c@63) (expression float + (var_ref c@63) (expression float i2f (var_ref conditional_tmp@72) ) ) ) (declare (temporary ) vec4 texture_retval@73) (assign (xyzw) (var_ref texture_retval@73) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@64) (swiz xy (var_ref assignment_tmp@66) )) 0 1 () )) (declare (temporary ) int conditional_tmp@74) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@73) )) ( (assign (x) (var_ref conditional_tmp@74) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@74) (constant int (0)) ) )) (assign (x) (var_ref c@63) (expression float + (var_ref c@63) (expression float i2f (var_ref conditional_tmp@74) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c@63) (constant float (0.250000)) ) ) ) ()) )) )) (declare (temporary ) vec3 vec_ctor@75) (assign (xy) (var_ref vec_ctor@75) (var_ref uv0) ) (assign (z) (var_ref vec_ctor@75) (expression float u2f (var_ref roughnessIdx) ) ) (assign (x) (var_ref ROUGHNESS) (expression float * (swiz w (var_ref ubo_load_temp_kS) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (tex vec4 (array_ref (var_ref textureMaps) (constant int (0)) ) (var_ref vec_ctor@75) 0 1 () ))) ) ) ) (declare (temporary ) float max_retval) (assign (x) (var_ref max_retval) (expression float max (var_ref ROUGHNESS) (constant float (0.001000)) ) ) (assign (x) (var_ref ROUGHNESS) (var_ref max_retval) ) (declare (temporary ) vec3 mix_retval) (assign (xyz) (var_ref mix_retval) (expression vec3 * (swiz xyz (var_ref texture_retval) )(swiz w (var_ref texture_retval) )) ) (declare (temporary ) vec3 normalize_retval@76) (declare () vec3 x) (assign (xyz) (var_ref x) (expression vec3 neg (var_ref pos) ) ) (assign (xyz) (var_ref normalize_retval@76) (expression vec3 * (var_ref x) (expression float rsq (expression float dot (var_ref x) (var_ref x) ) ) ) ) (declare (temporary ) float clamp_retval) (assign (x) (var_ref clamp_retval) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@76) ) ) ) (declare (temporary ) vec3 ubo_load_temp@77) (assign (xyz) (var_ref ubo_load_temp@77) (expression vec3 ubo_load (constant uint (2)) (constant uint (592)) ) ) (declare (temporary ) vec3 normalize_retval@78) (declare () vec3 x@79) (assign (xyz) (var_ref x@79) (expression vec3 + (var_ref ubo_load_temp@77) (var_ref normalize_retval@76) ) ) (assign (xyz) (var_ref normalize_retval@78) (expression vec3 * (var_ref x@79) (expression float rsq (expression float dot (var_ref x@79) (var_ref x@79) ) ) ) ) (declare (temporary ) float clamp_retval@80) (assign (x) (var_ref clamp_retval@80) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref ubo_load_temp@77) ) ) ) (declare (temporary ) float clamp_retval@81) (assign (x) (var_ref clamp_retval@81) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@78) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@82) (assign (x) (var_ref clamp_retval@82) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@76) (var_ref normalize_retval@78) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@83) (assign (x) (var_ref assignment_tmp@83) (expression float * (var_ref max_retval) (var_ref max_retval) ) ) (declare (temporary ) float assignment_tmp@84) (assign (x) (var_ref assignment_tmp@84) (expression float * (var_ref clamp_retval@81) (var_ref clamp_retval@81) ) ) (declare (temporary ) float assignment_tmp@85) (assign (x) (var_ref assignment_tmp@85) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@81) ) (expression float rcp (var_ref clamp_retval@82) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 * (var_ref clamp_retval@80) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (624)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@82) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@83) ) (expression float * (var_ref assignment_tmp@84) (var_ref assignment_tmp@84) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@84) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@83) (var_ref assignment_tmp@84) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@85) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@85) (var_ref clamp_retval@80) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@80) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (608)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@80) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) (var_ref mix_retval) ) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 * (var_ref finalColour) (var_ref fShadow) ) ) (declare (temporary ) vec3 cse) (assign (xyz) (var_ref cse) (expression vec3 ubo_load (constant uint (2)) (constant uint (688)) ) ) (assign (xyz) (var_ref lightDir) (expression vec3 + (var_ref cse) (expression vec3 neg (var_ref pos) ) ) ) (declare (temporary ) float length_retval) (assign (x) (var_ref length_retval) (expression float sqrt (expression float dot (var_ref lightDir) (var_ref lightDir) ) ) ) (declare () vec3 x@86) (assign (xyz) (var_ref x@86) (expression vec3 + (var_ref pos) (expression vec3 neg (var_ref cse) ) ) ) (declare (temporary ) float dot_retval) (assign (x) (var_ref dot_retval) (expression float dot (expression vec3 * (var_ref x@86) (expression float rsq (expression float dot (var_ref x@86) (var_ref x@86) ) ) ) (expression vec3 ubo_load (constant uint (2)) (constant uint (752)) ) ) ) (declare (temporary ) vec3 ubo_load_temp@87) (assign (xyz) (var_ref ubo_load_temp@87) (expression vec3 ubo_load (constant uint (2)) (constant uint (736)) ) ) (declare (temporary ) vec3 ubo_load_temp@88) (assign (xyz) (var_ref ubo_load_temp@88) (expression vec3 ubo_load (constant uint (2)) (constant uint (768)) ) ) (if (expression bool && (expression bool <= (var_ref length_retval) (swiz x (var_ref ubo_load_temp@87) )) (expression bool >= (var_ref dot_retval) (swiz y (var_ref ubo_load_temp@88) )) ) ( (assign (xyz) (var_ref lightDir) (expression vec3 * (var_ref lightDir) (expression float rcp (var_ref length_retval) ) ) ) (declare (temporary ) float pow_retval) (declare (temporary ) vec3 cse@89) (assign (xyz) (var_ref cse@89) (expression vec3 ubo_load (constant uint (2)) (constant uint (768)) ) ) (assign (x) (var_ref pow_retval) (expression float pow (expression float sat (expression float * (expression float + (var_ref dot_retval) (expression float neg (swiz y (var_ref cse@89) )) ) (swiz x (var_ref cse@89) )) ) (swiz z (var_ref cse@89) )) ) (declare (temporary ) vec3 cookTorrance_retval) (declare (temporary ) vec3 normalize_retval@90) (declare () vec3 x@91) (assign (xyz) (var_ref x@91) (expression vec3 + (var_ref lightDir) (var_ref normalize_retval@76) ) ) (assign (xyz) (var_ref normalize_retval@90) (expression vec3 * (var_ref x@91) (expression float rsq (expression float dot (var_ref x@91) (var_ref x@91) ) ) ) ) (declare (temporary ) float clamp_retval@92) (assign (x) (var_ref clamp_retval@92) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref lightDir) ) ) ) (declare (temporary ) float clamp_retval@93) (assign (x) (var_ref clamp_retval@93) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@90) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@94) (assign (x) (var_ref clamp_retval@94) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@76) (var_ref normalize_retval@90) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@95) (assign (x) (var_ref assignment_tmp@95) (expression float * (var_ref max_retval) (var_ref max_retval) ) ) (declare (temporary ) float assignment_tmp@96) (assign (x) (var_ref assignment_tmp@96) (expression float * (var_ref clamp_retval@93) (var_ref clamp_retval@93) ) ) (declare (temporary ) float assignment_tmp@97) (assign (x) (var_ref assignment_tmp@97) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@93) ) (expression float rcp (var_ref clamp_retval@94) ) ) ) (assign (xyz) (var_ref cookTorrance_retval) (expression vec3 * (var_ref clamp_retval@92) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (720)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@94) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@95) ) (expression float * (var_ref assignment_tmp@96) (var_ref assignment_tmp@96) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@96) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@95) (var_ref assignment_tmp@96) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@97) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@97) (var_ref clamp_retval@92) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@92) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (704)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@92) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) (var_ref mix_retval) ) ) ) ) (declare (temporary ) vec2 ubo_load_temp@98) (assign (xy) (var_ref ubo_load_temp@98) (expression vec2 ubo_load (constant uint (2)) (constant uint (440)) ) ) (declare () float c@99) (declare (temporary ) vec2 assignment_tmp@100) (assign (xy) (var_ref assignment_tmp@100) (expression vec2 * (swiz xy (var_ref posL3) )(expression float rcp (swiz w (var_ref posL3) )) ) ) (declare (temporary ) vec3 vec_ctor@101) (assign (xy) (var_ref vec_ctor@101) (var_ref ubo_load_temp@98) ) (assign (z) (var_ref vec_ctor@101) (expression float neg (swiz x (var_ref ubo_load_temp@98) )) ) (declare (temporary ) vec3 assignment_tmp@102) (assign (xyz) (var_ref assignment_tmp@102) (expression vec3 * (var_ref vec_ctor@101) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@103) (assign (xyzw) (var_ref texture_retval@103) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@100) (expression vec2 neg (swiz xy (var_ref assignment_tmp@102) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@104) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@103) )) ( (assign (x) (var_ref conditional_tmp@104) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@104) (constant int (0)) ) )) (assign (x) (var_ref c@99) (expression float i2f (var_ref conditional_tmp@104) ) ) (declare (temporary ) vec4 texture_retval@105) (assign (xyzw) (var_ref texture_retval@105) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@100) (expression vec2 neg (swiz zy (var_ref assignment_tmp@102) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@106) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@105) )) ( (assign (x) (var_ref conditional_tmp@106) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@106) (constant int (0)) ) )) (assign (x) (var_ref c@99) (expression float + (var_ref c@99) (expression float i2f (var_ref conditional_tmp@106) ) ) ) (declare (temporary ) vec4 texture_retval@107) (assign (xyzw) (var_ref texture_retval@107) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@100) (swiz zy (var_ref assignment_tmp@102) )) 0 1 () )) (declare (temporary ) int conditional_tmp@108) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@107) )) ( (assign (x) (var_ref conditional_tmp@108) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@108) (constant int (0)) ) )) (assign (x) (var_ref c@99) (expression float + (var_ref c@99) (expression float i2f (var_ref conditional_tmp@108) ) ) ) (declare (temporary ) vec4 texture_retval@109) (assign (xyzw) (var_ref texture_retval@109) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@100) (swiz xy (var_ref assignment_tmp@102) )) 0 1 () )) (declare (temporary ) int conditional_tmp@110) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@109) )) ( (assign (x) (var_ref conditional_tmp@110) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@110) (constant int (0)) ) )) (assign (x) (var_ref c@99) (expression float + (var_ref c@99) (expression float i2f (var_ref conditional_tmp@110) ) ) ) (assign (xyz) (var_ref tmpColour) (expression vec3 * (var_ref cookTorrance_retval) (expression float * (var_ref c@99) (constant float (0.250000)) ) ) ) (declare (temporary ) vec3 cse@111) (assign (xyz) (var_ref cse@111) (expression vec3 ubo_load (constant uint (2)) (constant uint (736)) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref tmpColour) (expression float * (expression float rcp (expression float + (expression float + (constant float (1.000000)) (expression float * (swiz y (var_ref cse@111) )(var_ref length_retval) ) ) (expression float * (expression float * (swiz z (var_ref cse@111) )(var_ref length_retval) ) (var_ref length_retval) ) ) ) (var_ref pow_retval) ) ) ) ) ) ()) (declare (temporary ) vec3 cse@112) (assign (xyz) (var_ref cse@112) (expression vec3 ubo_load (constant uint (2)) (constant uint (784)) ) ) (assign (xyz) (var_ref lightDir) (expression vec3 + (var_ref cse@112) (expression vec3 neg (var_ref pos) ) ) ) (declare (temporary ) float length_retval@113) (assign (x) (var_ref length_retval@113) (expression float sqrt (expression float dot (var_ref lightDir) (var_ref lightDir) ) ) ) (declare () vec3 x@114) (assign (xyz) (var_ref x@114) (expression vec3 + (var_ref pos) (expression vec3 neg (var_ref cse@112) ) ) ) (declare (temporary ) float dot_retval@115) (assign (x) (var_ref dot_retval@115) (expression float dot (expression vec3 * (var_ref x@114) (expression float rsq (expression float dot (var_ref x@114) (var_ref x@114) ) ) ) (expression vec3 ubo_load (constant uint (2)) (constant uint (848)) ) ) ) (declare (temporary ) vec3 ubo_load_temp@116) (assign (xyz) (var_ref ubo_load_temp@116) (expression vec3 ubo_load (constant uint (2)) (constant uint (832)) ) ) (declare (temporary ) vec3 ubo_load_temp@117) (assign (xyz) (var_ref ubo_load_temp@117) (expression vec3 ubo_load (constant uint (2)) (constant uint (864)) ) ) (if (expression bool && (expression bool <= (var_ref length_retval@113) (swiz x (var_ref ubo_load_temp@116) )) (expression bool >= (var_ref dot_retval@115) (swiz y (var_ref ubo_load_temp@117) )) ) ( (assign (xyz) (var_ref lightDir) (expression vec3 * (var_ref lightDir) (expression float rcp (var_ref length_retval@113) ) ) ) (declare (temporary ) float pow_retval@118) (declare (temporary ) vec3 cse@119) (assign (xyz) (var_ref cse@119) (expression vec3 ubo_load (constant uint (2)) (constant uint (864)) ) ) (assign (x) (var_ref pow_retval@118) (expression float pow (expression float sat (expression float * (expression float + (var_ref dot_retval@115) (expression float neg (swiz y (var_ref cse@119) )) ) (swiz x (var_ref cse@119) )) ) (swiz z (var_ref cse@119) )) ) (declare (temporary ) vec3 cookTorrance_retval@120) (declare (temporary ) vec3 normalize_retval@121) (declare () vec3 x@122) (assign (xyz) (var_ref x@122) (expression vec3 + (var_ref lightDir) (var_ref normalize_retval@76) ) ) (assign (xyz) (var_ref normalize_retval@121) (expression vec3 * (var_ref x@122) (expression float rsq (expression float dot (var_ref x@122) (var_ref x@122) ) ) ) ) (declare (temporary ) float clamp_retval@123) (assign (x) (var_ref clamp_retval@123) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref lightDir) ) ) ) (declare (temporary ) float clamp_retval@124) (assign (x) (var_ref clamp_retval@124) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@121) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@125) (assign (x) (var_ref clamp_retval@125) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@76) (var_ref normalize_retval@121) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@126) (assign (x) (var_ref assignment_tmp@126) (expression float * (var_ref max_retval) (var_ref max_retval) ) ) (declare (temporary ) float assignment_tmp@127) (assign (x) (var_ref assignment_tmp@127) (expression float * (var_ref clamp_retval@124) (var_ref clamp_retval@124) ) ) (declare (temporary ) float assignment_tmp@128) (assign (x) (var_ref assignment_tmp@128) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@124) ) (expression float rcp (var_ref clamp_retval@125) ) ) ) (assign (xyz) (var_ref cookTorrance_retval@120) (expression vec3 * (var_ref clamp_retval@123) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (816)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@125) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@126) ) (expression float * (var_ref assignment_tmp@127) (var_ref assignment_tmp@127) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@127) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@126) (var_ref assignment_tmp@127) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@128) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@128) (var_ref clamp_retval@123) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@123) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (800)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@123) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) (var_ref mix_retval) ) ) ) ) (declare (temporary ) vec2 ubo_load_temp@129) (assign (xy) (var_ref ubo_load_temp@129) (expression vec2 ubo_load (constant uint (2)) (constant uint (520)) ) ) (declare () float c@130) (declare (temporary ) vec2 assignment_tmp@131) (assign (xy) (var_ref assignment_tmp@131) (expression vec2 * (swiz xy (var_ref posL4) )(expression float rcp (swiz w (var_ref posL4) )) ) ) (declare (temporary ) vec3 vec_ctor@132) (assign (xy) (var_ref vec_ctor@132) (var_ref ubo_load_temp@129) ) (assign (z) (var_ref vec_ctor@132) (expression float neg (swiz x (var_ref ubo_load_temp@129) )) ) (declare (temporary ) vec3 assignment_tmp@133) (assign (xyz) (var_ref assignment_tmp@133) (expression vec3 * (var_ref vec_ctor@132) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@134) (assign (xyzw) (var_ref texture_retval@134) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@131) (expression vec2 neg (swiz xy (var_ref assignment_tmp@133) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@135) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@134) )) ( (assign (x) (var_ref conditional_tmp@135) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@135) (constant int (0)) ) )) (assign (x) (var_ref c@130) (expression float i2f (var_ref conditional_tmp@135) ) ) (declare (temporary ) vec4 texture_retval@136) (assign (xyzw) (var_ref texture_retval@136) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@131) (expression vec2 neg (swiz zy (var_ref assignment_tmp@133) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@137) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@136) )) ( (assign (x) (var_ref conditional_tmp@137) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@137) (constant int (0)) ) )) (assign (x) (var_ref c@130) (expression float + (var_ref c@130) (expression float i2f (var_ref conditional_tmp@137) ) ) ) (declare (temporary ) vec4 texture_retval@138) (assign (xyzw) (var_ref texture_retval@138) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@131) (swiz zy (var_ref assignment_tmp@133) )) 0 1 () )) (declare (temporary ) int conditional_tmp@139) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@138) )) ( (assign (x) (var_ref conditional_tmp@139) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@139) (constant int (0)) ) )) (assign (x) (var_ref c@130) (expression float + (var_ref c@130) (expression float i2f (var_ref conditional_tmp@139) ) ) ) (declare (temporary ) vec4 texture_retval@140) (assign (xyzw) (var_ref texture_retval@140) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@131) (swiz xy (var_ref assignment_tmp@133) )) 0 1 () )) (declare (temporary ) int conditional_tmp@141) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@140) )) ( (assign (x) (var_ref conditional_tmp@141) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@141) (constant int (0)) ) )) (assign (x) (var_ref c@130) (expression float + (var_ref c@130) (expression float i2f (var_ref conditional_tmp@141) ) ) ) (assign (xyz) (var_ref tmpColour) (expression vec3 * (var_ref cookTorrance_retval@120) (expression float * (var_ref c@130) (constant float (0.250000)) ) ) ) (declare (temporary ) vec3 cse@142) (assign (xyz) (var_ref cse@142) (expression vec3 ubo_load (constant uint (2)) (constant uint (832)) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref tmpColour) (expression float * (expression float rcp (expression float + (expression float + (constant float (1.000000)) (expression float * (swiz y (var_ref cse@142) )(var_ref length_retval@113) ) ) (expression float * (expression float * (swiz z (var_ref cse@142) )(var_ref length_retval@113) ) (var_ref length_retval@113) ) ) ) (var_ref pow_retval@118) ) ) ) ) ) ()) (assign (xyz) (var_ref outColour) (var_ref finalColour) ) (assign (w) (var_ref outColour) (constant float (1.000000)) ) (assign (xyzw) (var_ref outColour@143) (var_ref outColour) ) )) ) ) Vertex Shader: 545460586VertexShader_vs Fragment Shader: 545460586PixelShader_ps GLSL program result : Vertex Shader: 545460586VertexShader_vs Fragment Shader: 545460586PixelShader_ps GLSL program pipeline validation result: 0:11(1): error: #extension directive is not allowed in the middle of a shader GLSL compile log: 549654890VertexShader_vs 0:11(1): error: #extension directive is not allowed in the middle of a shader Vertex Program 549654890VertexShader_vs failed to compile. See compile log above for details. GLSL compiled: 549654890PixelShader_ps GLSL IR for linked fragment program 11: ( (declare (shader_in flat) ivec4 packed:biNormalReflection,drawId) (declare (shader_in ) vec4 packed:depth,normal.x,uv0) (declare (shader_in ) vec4 packed:normal.yz,pos.xy) (declare () vec3 normal) (declare (shader_in ) vec4 packed:pos.z,tangent) (declare () vec3 pos) (declare (shader_in ) vec4 posL0) (declare (shader_in ) vec4 posL1) (declare (shader_in ) vec4 posL2) (declare (shader_in ) vec4 posL3) (declare (shader_in ) vec4 posL4) (declare () vec2 uv0) (declare (uniform ) InstanceBuffer instance) (declare (uniform ) MaterialBuf materialArray) (declare (uniform ) PassBuffer pass) (declare (shader_out ) vec4 outColour) (declare (temporary ) vec4 outColour) (declare (uniform ) (array sampler2DArray 3) textureMaps) (declare () uint diffuseIdx) (declare () uint specularIdx) (declare () uint roughnessIdx) (declare () float ROUGHNESS) (declare (uniform ) (array sampler2D 5) texShadowMap) (function main (signature void (parameters ) ( (assign (x) (var_ref normal) (swiz w (var_ref packed:depth,normal.x,uv0) )) (assign (yz) (var_ref normal) (swiz xy (var_ref packed:normal.yz,pos.xy) )) (assign (xy) (var_ref pos) (swiz zw (var_ref packed:normal.yz,pos.xy) )) (assign (z) (var_ref pos) (swiz x (var_ref packed:pos.z,tangent) )) (assign (xy) (var_ref uv0) (swiz xy (var_ref packed:depth,normal.x,uv0) )) (declare () vec3 tmpColour) (declare () vec3 lightDir) (declare () vec3 finalColour) (declare () float fShadow) (declare (temporary ) vec4 ubo_load_temp_kD) (declare (temporary ) vec4 ubo_load_temp_kS) (declare (temporary ) vec4 ubo_load_temp_F0) (declare (temporary ) uvec4 ubo_load_temp_indices0_3) (declare (temporary ) uint ubo_load_temp_offset) (assign (x) (var_ref ubo_load_temp_offset) (expression uint * (expression uint & (swiz x (expression uvec4 ubo_load (constant uint (0)) (expression uint * (expression uint i2u (swiz y (var_ref packed:biNormalReflection,drawId) )) (constant uint (16)) ) ) )(constant uint (511)) ) (constant uint (240)) ) ) (assign (xyzw) (var_ref ubo_load_temp_kD) (expression vec4 ubo_load (constant uint (1)) (var_ref ubo_load_temp_offset) ) ) (assign (xyzw) (var_ref ubo_load_temp_kS) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (16)) ) ) ) (assign (xyzw) (var_ref ubo_load_temp_F0) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (32)) ) ) ) (assign (xyzw) (var_ref ubo_load_temp_indices0_3) (expression uvec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (208)) ) ) ) (assign (x) (var_ref diffuseIdx) (expression uint & (swiz x (var_ref ubo_load_temp_indices0_3) )(constant uint (65535)) ) ) (assign (x) (var_ref specularIdx) (expression uint & (swiz y (var_ref ubo_load_temp_indices0_3) )(constant uint (65535)) ) ) (assign (x) (var_ref roughnessIdx) (expression uint >> (swiz y (var_ref ubo_load_temp_indices0_3) )(constant uint (16)) ) ) (declare (temporary ) vec3 normalize_retval) (assign (xyz) (var_ref normalize_retval) (expression vec3 * (var_ref normal) (expression float rsq (expression float dot (var_ref normal) (var_ref normal) ) ) ) ) (declare (temporary ) vec3 normalize_retval@184) (assign (xyz) (var_ref normalize_retval@184) (expression vec3 * (swiz yzw (var_ref packed:pos.z,tangent) )(expression float rsq (expression float dot (swiz yzw (var_ref packed:pos.z,tangent) )(swiz yzw (var_ref packed:pos.z,tangent) )) ) ) ) (declare () vec3 x) (assign (xyz) (var_ref x) (expression vec3 * (expression vec3 + (expression vec3 * (swiz yzx (var_ref normalize_retval@184) )(swiz zxy (var_ref normalize_retval) )) (expression vec3 neg (expression vec3 * (swiz zxy (var_ref normalize_retval@184) )(swiz yzx (var_ref normalize_retval) )) ) ) (expression float bitcast_i2f (swiz x (var_ref packed:biNormalReflection,drawId) )) ) ) (declare (temporary ) vec3 mat_ctor_1) (assign (xyz) (var_ref mat_ctor_1) (expression vec3 * (var_ref x) (expression float rsq (expression float dot (var_ref x) (var_ref x) ) ) ) ) (declare (temporary ) vec3 vec_ctor) (assign (xy) (var_ref vec_ctor) (var_ref uv0) ) (assign (z) (var_ref vec_ctor) (expression float u2f (expression uint >> (swiz x (var_ref ubo_load_temp_indices0_3) )(constant uint (16)) ) ) ) (declare () vec3 tsNormal) (declare (temporary ) vec4 texture_retval) (assign (xyzw) (var_ref texture_retval) (tex vec4 (array_ref (var_ref textureMaps) (constant int (1)) ) (var_ref vec_ctor) 0 1 () )) (assign (xy) (var_ref tsNormal) (swiz xy (var_ref texture_retval) )) (assign (z) (var_ref tsNormal) (expression float sqrt (expression float + (expression float + (constant float (1.000000)) (expression float neg (expression float * (swiz x (var_ref texture_retval) )(swiz x (var_ref texture_retval) )) ) ) (expression float neg (expression float * (swiz y (var_ref texture_retval) )(swiz y (var_ref texture_retval) )) ) ) ) ) (assign (x) (var_ref fShadow) (constant float (1.000000)) ) (declare (temporary ) float ubo_load_temp) (assign (x) (var_ref ubo_load_temp) (expression float ubo_load (constant uint (2)) (constant uint (576)) ) ) (if (expression bool <= (swiz z (var_ref packed:depth,normal.x,uv0) )(var_ref ubo_load_temp) ) ( (declare (temporary ) vec2 ubo_load_temp@185) (assign (xy) (var_ref ubo_load_temp@185) (expression vec2 ubo_load (constant uint (2)) (constant uint (200)) ) ) (declare () float c) (declare (temporary ) vec2 assignment_tmp) (assign (xy) (var_ref assignment_tmp) (expression vec2 * (swiz xy (var_ref posL0) )(expression float rcp (swiz w (var_ref posL0) )) ) ) (declare (temporary ) vec3 vec_ctor@186) (assign (xy) (var_ref vec_ctor@186) (var_ref ubo_load_temp@185) ) (assign (z) (var_ref vec_ctor@186) (expression float neg (swiz x (var_ref ubo_load_temp@185) )) ) (declare (temporary ) vec3 assignment_tmp@187) (assign (xyz) (var_ref assignment_tmp@187) (expression vec3 * (var_ref vec_ctor@186) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@188) (assign (xyzw) (var_ref texture_retval@188) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (expression vec2 neg (swiz xy (var_ref assignment_tmp@187) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@188) )) ( (assign (x) (var_ref conditional_tmp) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float i2f (var_ref conditional_tmp) ) ) (declare (temporary ) vec4 texture_retval@189) (assign (xyzw) (var_ref texture_retval@189) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (expression vec2 neg (swiz zy (var_ref assignment_tmp@187) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@190) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@189) )) ( (assign (x) (var_ref conditional_tmp@190) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@190) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@190) ) ) ) (declare (temporary ) vec4 texture_retval@191) (assign (xyzw) (var_ref texture_retval@191) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (swiz zy (var_ref assignment_tmp@187) )) 0 1 () )) (declare (temporary ) int conditional_tmp@192) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@191) )) ( (assign (x) (var_ref conditional_tmp@192) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@192) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@192) ) ) ) (declare (temporary ) vec4 texture_retval@193) (assign (xyzw) (var_ref texture_retval@193) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (swiz xy (var_ref assignment_tmp@187) )) 0 1 () )) (declare (temporary ) int conditional_tmp@194) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@193) )) ( (assign (x) (var_ref conditional_tmp@194) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@194) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@194) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c) (constant float (0.250000)) ) ) ) ( (declare (temporary ) float ubo_load_temp@195) (assign (x) (var_ref ubo_load_temp@195) (expression float ubo_load (constant uint (2)) (constant uint (580)) ) ) (if (expression bool <= (swiz z (var_ref packed:depth,normal.x,uv0) )(var_ref ubo_load_temp@195) ) ( (declare (temporary ) vec2 ubo_load_temp@196) (assign (xy) (var_ref ubo_load_temp@196) (expression vec2 ubo_load (constant uint (2)) (constant uint (280)) ) ) (declare () float c@197) (declare (temporary ) vec2 assignment_tmp@198) (assign (xy) (var_ref assignment_tmp@198) (expression vec2 * (swiz xy (var_ref posL1) )(expression float rcp (swiz w (var_ref posL1) )) ) ) (declare (temporary ) vec3 vec_ctor@199) (assign (xy) (var_ref vec_ctor@199) (var_ref ubo_load_temp@196) ) (assign (z) (var_ref vec_ctor@199) (expression float neg (swiz x (var_ref ubo_load_temp@196) )) ) (declare (temporary ) vec3 assignment_tmp@200) (assign (xyz) (var_ref assignment_tmp@200) (expression vec3 * (var_ref vec_ctor@199) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@201) (assign (xyzw) (var_ref texture_retval@201) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@198) (expression vec2 neg (swiz xy (var_ref assignment_tmp@200) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@202) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@201) )) ( (assign (x) (var_ref conditional_tmp@202) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@202) (constant int (0)) ) )) (assign (x) (var_ref c@197) (expression float i2f (var_ref conditional_tmp@202) ) ) (declare (temporary ) vec4 texture_retval@203) (assign (xyzw) (var_ref texture_retval@203) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@198) (expression vec2 neg (swiz zy (var_ref assignment_tmp@200) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@204) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@203) )) ( (assign (x) (var_ref conditional_tmp@204) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@204) (constant int (0)) ) )) (assign (x) (var_ref c@197) (expression float + (var_ref c@197) (expression float i2f (var_ref conditional_tmp@204) ) ) ) (declare (temporary ) vec4 texture_retval@205) (assign (xyzw) (var_ref texture_retval@205) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@198) (swiz zy (var_ref assignment_tmp@200) )) 0 1 () )) (declare (temporary ) int conditional_tmp@206) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@205) )) ( (assign (x) (var_ref conditional_tmp@206) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@206) (constant int (0)) ) )) (assign (x) (var_ref c@197) (expression float + (var_ref c@197) (expression float i2f (var_ref conditional_tmp@206) ) ) ) (declare (temporary ) vec4 texture_retval@207) (assign (xyzw) (var_ref texture_retval@207) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@198) (swiz xy (var_ref assignment_tmp@200) )) 0 1 () )) (declare (temporary ) int conditional_tmp@208) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@207) )) ( (assign (x) (var_ref conditional_tmp@208) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@208) (constant int (0)) ) )) (assign (x) (var_ref c@197) (expression float + (var_ref c@197) (expression float i2f (var_ref conditional_tmp@208) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c@197) (constant float (0.250000)) ) ) ) ( (declare (temporary ) float ubo_load_temp@209) (assign (x) (var_ref ubo_load_temp@209) (expression float ubo_load (constant uint (2)) (constant uint (584)) ) ) (if (expression bool <= (swiz z (var_ref packed:depth,normal.x,uv0) )(var_ref ubo_load_temp@209) ) ( (declare (temporary ) vec2 ubo_load_temp@210) (assign (xy) (var_ref ubo_load_temp@210) (expression vec2 ubo_load (constant uint (2)) (constant uint (360)) ) ) (declare () float c@211) (declare (temporary ) vec2 assignment_tmp@212) (assign (xy) (var_ref assignment_tmp@212) (expression vec2 * (swiz xy (var_ref posL2) )(expression float rcp (swiz w (var_ref posL2) )) ) ) (declare (temporary ) vec3 vec_ctor@213) (assign (xy) (var_ref vec_ctor@213) (var_ref ubo_load_temp@210) ) (assign (z) (var_ref vec_ctor@213) (expression float neg (swiz x (var_ref ubo_load_temp@210) )) ) (declare (temporary ) vec3 assignment_tmp@214) (assign (xyz) (var_ref assignment_tmp@214) (expression vec3 * (var_ref vec_ctor@213) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@215) (assign (xyzw) (var_ref texture_retval@215) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@212) (expression vec2 neg (swiz xy (var_ref assignment_tmp@214) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@216) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@215) )) ( (assign (x) (var_ref conditional_tmp@216) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@216) (constant int (0)) ) )) (assign (x) (var_ref c@211) (expression float i2f (var_ref conditional_tmp@216) ) ) (declare (temporary ) vec4 texture_retval@217) (assign (xyzw) (var_ref texture_retval@217) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@212) (expression vec2 neg (swiz zy (var_ref assignment_tmp@214) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@218) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@217) )) ( (assign (x) (var_ref conditional_tmp@218) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@218) (constant int (0)) ) )) (assign (x) (var_ref c@211) (expression float + (var_ref c@211) (expression float i2f (var_ref conditional_tmp@218) ) ) ) (declare (temporary ) vec4 texture_retval@219) (assign (xyzw) (var_ref texture_retval@219) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@212) (swiz zy (var_ref assignment_tmp@214) )) 0 1 () )) (declare (temporary ) int conditional_tmp@220) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@219) )) ( (assign (x) (var_ref conditional_tmp@220) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@220) (constant int (0)) ) )) (assign (x) (var_ref c@211) (expression float + (var_ref c@211) (expression float i2f (var_ref conditional_tmp@220) ) ) ) (declare (temporary ) vec4 texture_retval@221) (assign (xyzw) (var_ref texture_retval@221) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@212) (swiz xy (var_ref assignment_tmp@214) )) 0 1 () )) (declare (temporary ) int conditional_tmp@222) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@221) )) ( (assign (x) (var_ref conditional_tmp@222) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@222) (constant int (0)) ) )) (assign (x) (var_ref c@211) (expression float + (var_ref c@211) (expression float i2f (var_ref conditional_tmp@222) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c@211) (constant float (0.250000)) ) ) ) ()) )) )) (declare (temporary ) vec3 vec_ctor@223) (assign (xy) (var_ref vec_ctor@223) (var_ref uv0) ) (assign (z) (var_ref vec_ctor@223) (expression float u2f (var_ref diffuseIdx) ) ) (declare (temporary ) vec4 texture_retval@224) (assign (xyzw) (var_ref texture_retval@224) (tex vec4 (array_ref (var_ref textureMaps) (constant int (0)) ) (var_ref vec_ctor@223) 0 1 () )) (declare (temporary ) vec3 vec_ctor@225) (assign (xy) (var_ref vec_ctor@225) (var_ref uv0) ) (assign (z) (var_ref vec_ctor@225) (expression float u2f (var_ref specularIdx) ) ) (declare (temporary ) vec4 texture_retval@226) (assign (xyzw) (var_ref texture_retval@226) (tex vec4 (array_ref (var_ref textureMaps) (constant int (0)) ) (var_ref vec_ctor@225) 0 1 () )) (declare (temporary ) vec3 vec_ctor@227) (assign (xy) (var_ref vec_ctor@227) (var_ref uv0) ) (assign (z) (var_ref vec_ctor@227) (expression float u2f (var_ref roughnessIdx) ) ) (assign (x) (var_ref ROUGHNESS) (expression float * (swiz w (var_ref ubo_load_temp_kS) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (tex vec4 (array_ref (var_ref textureMaps) (constant int (2)) ) (var_ref vec_ctor@227) 0 1 () ))) ) ) ) (declare (temporary ) float max_retval) (assign (x) (var_ref max_retval) (expression float max (var_ref ROUGHNESS) (constant float (0.001000)) ) ) (assign (x) (var_ref ROUGHNESS) (var_ref max_retval) ) (declare (temporary ) vec3 normalize_retval@228) (declare (temporary ) vec3 flattening_tmp) (assign (xyz) (var_ref flattening_tmp) (expression vec3 + (expression vec3 + (expression vec3 * (var_ref normalize_retval@184) (swiz x (var_ref texture_retval) )) (expression vec3 * (var_ref mat_ctor_1) (swiz y (var_ref texture_retval) )) ) (expression vec3 * (var_ref normalize_retval) (swiz z (var_ref tsNormal) )) ) ) (assign (xyz) (var_ref normalize_retval@228) (expression vec3 * (var_ref flattening_tmp) (expression float rsq (expression float dot (var_ref flattening_tmp) (var_ref flattening_tmp) ) ) ) ) (declare (temporary ) vec3 normalize_retval@229) (declare () vec3 x@230) (assign (xyz) (var_ref x@230) (expression vec3 neg (var_ref pos) ) ) (assign (xyz) (var_ref normalize_retval@229) (expression vec3 * (var_ref x@230) (expression float rsq (expression float dot (var_ref x@230) (var_ref x@230) ) ) ) ) (declare (temporary ) float clamp_retval) (assign (x) (var_ref clamp_retval) (expression float sat (expression float dot (var_ref normalize_retval@228) (var_ref normalize_retval@229) ) ) ) (declare (temporary ) vec3 ubo_load_temp@231) (assign (xyz) (var_ref ubo_load_temp@231) (expression vec3 ubo_load (constant uint (2)) (constant uint (592)) ) ) (declare (temporary ) vec3 normalize_retval@232) (declare () vec3 x@233) (assign (xyz) (var_ref x@233) (expression vec3 + (var_ref ubo_load_temp@231) (var_ref normalize_retval@229) ) ) (assign (xyz) (var_ref normalize_retval@232) (expression vec3 * (var_ref x@233) (expression float rsq (expression float dot (var_ref x@233) (var_ref x@233) ) ) ) ) (declare (temporary ) float clamp_retval@234) (assign (x) (var_ref clamp_retval@234) (expression float sat (expression float dot (var_ref normalize_retval@228) (var_ref ubo_load_temp@231) ) ) ) (declare (temporary ) float clamp_retval@235) (assign (x) (var_ref clamp_retval@235) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@228) (var_ref normalize_retval@232) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@236) (assign (x) (var_ref clamp_retval@236) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@229) (var_ref normalize_retval@232) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@237) (assign (x) (var_ref assignment_tmp@237) (expression float * (var_ref max_retval) (var_ref max_retval) ) ) (declare (temporary ) float assignment_tmp@238) (assign (x) (var_ref assignment_tmp@238) (expression float * (var_ref clamp_retval@235) (var_ref clamp_retval@235) ) ) (declare (temporary ) float assignment_tmp@239) (assign (x) (var_ref assignment_tmp@239) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@235) ) (expression float rcp (var_ref clamp_retval@236) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 * (var_ref clamp_retval@234) (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (624)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@236) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@237) ) (expression float * (var_ref assignment_tmp@238) (var_ref assignment_tmp@238) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@238) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@237) (var_ref assignment_tmp@238) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@239) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@239) (var_ref clamp_retval@234) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@234) ) (constant float (0.010000)) ) ) ) ) (swiz xyz (var_ref texture_retval@226) )) (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (608)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@234) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) (swiz xyz (var_ref texture_retval@224) )) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 * (var_ref finalColour) (var_ref fShadow) ) ) (declare (temporary ) vec3 cse) (assign (xyz) (var_ref cse) (expression vec3 ubo_load (constant uint (2)) (constant uint (688)) ) ) (assign (xyz) (var_ref lightDir) (expression vec3 + (var_ref cse) (expression vec3 neg (var_ref pos) ) ) ) (declare (temporary ) float length_retval) (assign (x) (var_ref length_retval) (expression float sqrt (expression float dot (var_ref lightDir) (var_ref lightDir) ) ) ) (declare () vec3 x@240) (assign (xyz) (var_ref x@240) (expression vec3 + (var_ref pos) (expression vec3 neg (var_ref cse) ) ) ) (declare (temporary ) float dot_retval) (assign (x) (var_ref dot_retval) (expression float dot (expression vec3 * (var_ref x@240) (expression float rsq (expression float dot (var_ref x@240) (var_ref x@240) ) ) ) (expression vec3 ubo_load (constant uint (2)) (constant uint (752)) ) ) ) (declare (temporary ) vec3 ubo_load_temp@241) (assign (xyz) (var_ref ubo_load_temp@241) (expression vec3 ubo_load (constant uint (2)) (constant uint (736)) ) ) (declare (temporary ) vec3 ubo_load_temp@242) (assign (xyz) (var_ref ubo_load_temp@242) (expression vec3 ubo_load (constant uint (2)) (constant uint (768)) ) ) (if (expression bool && (expression bool <= (var_ref length_retval) (swiz x (var_ref ubo_load_temp@241) )) (expression bool >= (var_ref dot_retval) (swiz y (var_ref ubo_load_temp@242) )) ) ( (assign (xyz) (var_ref lightDir) (expression vec3 * (var_ref lightDir) (expression float rcp (var_ref length_retval) ) ) ) (declare (temporary ) float pow_retval) (declare (temporary ) vec3 cse@243) (assign (xyz) (var_ref cse@243) (expression vec3 ubo_load (constant uint (2)) (constant uint (768)) ) ) (assign (x) (var_ref pow_retval) (expression float pow (expression float sat (expression float * (expression float + (var_ref dot_retval) (expression float neg (swiz y (var_ref cse@243) )) ) (swiz x (var_ref cse@243) )) ) (swiz z (var_ref cse@243) )) ) (declare (temporary ) vec3 cookTorrance_retval) (declare (temporary ) vec3 normalize_retval@244) (declare () vec3 x@245) (assign (xyz) (var_ref x@245) (expression vec3 + (var_ref lightDir) (var_ref normalize_retval@229) ) ) (assign (xyz) (var_ref normalize_retval@244) (expression vec3 * (var_ref x@245) (expression float rsq (expression float dot (var_ref x@245) (var_ref x@245) ) ) ) ) (declare (temporary ) float clamp_retval@246) (assign (x) (var_ref clamp_retval@246) (expression float sat (expression float dot (var_ref normalize_retval@228) (var_ref lightDir) ) ) ) (declare (temporary ) float clamp_retval@247) (assign (x) (var_ref clamp_retval@247) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@228) (var_ref normalize_retval@244) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@248) (assign (x) (var_ref clamp_retval@248) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@229) (var_ref normalize_retval@244) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@249) (assign (x) (var_ref assignment_tmp@249) (expression float * (var_ref max_retval) (var_ref max_retval) ) ) (declare (temporary ) float assignment_tmp@250) (assign (x) (var_ref assignment_tmp@250) (expression float * (var_ref clamp_retval@247) (var_ref clamp_retval@247) ) ) (declare (temporary ) float assignment_tmp@251) (assign (x) (var_ref assignment_tmp@251) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@247) ) (expression float rcp (var_ref clamp_retval@248) ) ) ) (assign (xyz) (var_ref cookTorrance_retval) (expression vec3 * (var_ref clamp_retval@246) (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (720)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@248) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@249) ) (expression float * (var_ref assignment_tmp@250) (var_ref assignment_tmp@250) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@250) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@249) (var_ref assignment_tmp@250) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@251) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@251) (var_ref clamp_retval@246) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@246) ) (constant float (0.010000)) ) ) ) ) (swiz xyz (var_ref texture_retval@226) )) (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (704)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@246) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) (swiz xyz (var_ref texture_retval@224) )) ) ) ) (declare (temporary ) vec2 ubo_load_temp@252) (assign (xy) (var_ref ubo_load_temp@252) (expression vec2 ubo_load (constant uint (2)) (constant uint (440)) ) ) (declare () float c@253) (declare (temporary ) vec2 assignment_tmp@254) (assign (xy) (var_ref assignment_tmp@254) (expression vec2 * (swiz xy (var_ref posL3) )(expression float rcp (swiz w (var_ref posL3) )) ) ) (declare (temporary ) vec3 vec_ctor@255) (assign (xy) (var_ref vec_ctor@255) (var_ref ubo_load_temp@252) ) (assign (z) (var_ref vec_ctor@255) (expression float neg (swiz x (var_ref ubo_load_temp@252) )) ) (declare (temporary ) vec3 assignment_tmp@256) (assign (xyz) (var_ref assignment_tmp@256) (expression vec3 * (var_ref vec_ctor@255) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@257) (assign (xyzw) (var_ref texture_retval@257) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@254) (expression vec2 neg (swiz xy (var_ref assignment_tmp@256) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@258) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@257) )) ( (assign (x) (var_ref conditional_tmp@258) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@258) (constant int (0)) ) )) (assign (x) (var_ref c@253) (expression float i2f (var_ref conditional_tmp@258) ) ) (declare (temporary ) vec4 texture_retval@259) (assign (xyzw) (var_ref texture_retval@259) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@254) (expression vec2 neg (swiz zy (var_ref assignment_tmp@256) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@260) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@259) )) ( (assign (x) (var_ref conditional_tmp@260) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@260) (constant int (0)) ) )) (assign (x) (var_ref c@253) (expression float + (var_ref c@253) (expression float i2f (var_ref conditional_tmp@260) ) ) ) (declare (temporary ) vec4 texture_retval@261) (assign (xyzw) (var_ref texture_retval@261) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@254) (swiz zy (var_ref assignment_tmp@256) )) 0 1 () )) (declare (temporary ) int conditional_tmp@262) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@261) )) ( (assign (x) (var_ref conditional_tmp@262) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@262) (constant int (0)) ) )) (assign (x) (var_ref c@253) (expression float + (var_ref c@253) (expression float i2f (var_ref conditional_tmp@262) ) ) ) (declare (temporary ) vec4 texture_retval@263) (assign (xyzw) (var_ref texture_retval@263) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@254) (swiz xy (var_ref assignment_tmp@256) )) 0 1 () )) (declare (temporary ) int conditional_tmp@264) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@263) )) ( (assign (x) (var_ref conditional_tmp@264) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@264) (constant int (0)) ) )) (assign (x) (var_ref c@253) (expression float + (var_ref c@253) (expression float i2f (var_ref conditional_tmp@264) ) ) ) (assign (xyz) (var_ref tmpColour) (expression vec3 * (var_ref cookTorrance_retval) (expression float * (var_ref c@253) (constant float (0.250000)) ) ) ) (declare (temporary ) vec3 cse@265) (assign (xyz) (var_ref cse@265) (expression vec3 ubo_load (constant uint (2)) (constant uint (736)) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref tmpColour) (expression float * (expression float rcp (expression float + (expression float + (constant float (1.000000)) (expression float * (swiz y (var_ref cse@265) )(var_ref length_retval) ) ) (expression float * (expression float * (swiz z (var_ref cse@265) )(var_ref length_retval) ) (var_ref length_retval) ) ) ) (var_ref pow_retval) ) ) ) ) ) ()) (declare (temporary ) vec3 cse@266) (assign (xyz) (var_ref cse@266) (expression vec3 ubo_load (constant uint (2)) (constant uint (784)) ) ) (assign (xyz) (var_ref lightDir) (expression vec3 + (var_ref cse@266) (expression vec3 neg (var_ref pos) ) ) ) (declare (temporary ) float length_retval@267) (assign (x) (var_ref length_retval@267) (expression float sqrt (expression float dot (var_ref lightDir) (var_ref lightDir) ) ) ) (declare () vec3 x@268) (assign (xyz) (var_ref x@268) (expression vec3 + (var_ref pos) (expression vec3 neg (var_ref cse@266) ) ) ) (declare (temporary ) float dot_retval@269) (assign (x) (var_ref dot_retval@269) (expression float dot (expression vec3 * (var_ref x@268) (expression float rsq (expression float dot (var_ref x@268) (var_ref x@268) ) ) ) (expression vec3 ubo_load (constant uint (2)) (constant uint (848)) ) ) ) (declare (temporary ) vec3 ubo_load_temp@270) (assign (xyz) (var_ref ubo_load_temp@270) (expression vec3 ubo_load (constant uint (2)) (constant uint (832)) ) ) (declare (temporary ) vec3 ubo_load_temp@271) (assign (xyz) (var_ref ubo_load_temp@271) (expression vec3 ubo_load (constant uint (2)) (constant uint (864)) ) ) (if (expression bool && (expression bool <= (var_ref length_retval@267) (swiz x (var_ref ubo_load_temp@270) )) (expression bool >= (var_ref dot_retval@269) (swiz y (var_ref ubo_load_temp@271) )) ) ( (assign (xyz) (var_ref lightDir) (expression vec3 * (var_ref lightDir) (expression float rcp (var_ref length_retval@267) ) ) ) (declare (temporary ) float pow_retval@272) (declare (temporary ) vec3 cse@273) (assign (xyz) (var_ref cse@273) (expression vec3 ubo_load (constant uint (2)) (constant uint (864)) ) ) (assign (x) (var_ref pow_retval@272) (expression float pow (expression float sat (expression float * (expression float + (var_ref dot_retval@269) (expression float neg (swiz y (var_ref cse@273) )) ) (swiz x (var_ref cse@273) )) ) (swiz z (var_ref cse@273) )) ) (declare (temporary ) vec3 cookTorrance_retval@274) (declare (temporary ) vec3 normalize_retval@275) (declare () vec3 x@276) (assign (xyz) (var_ref x@276) (expression vec3 + (var_ref lightDir) (var_ref normalize_retval@229) ) ) (assign (xyz) (var_ref normalize_retval@275) (expression vec3 * (var_ref x@276) (expression float rsq (expression float dot (var_ref x@276) (var_ref x@276) ) ) ) ) (declare (temporary ) float clamp_retval@277) (assign (x) (var_ref clamp_retval@277) (expression float sat (expression float dot (var_ref normalize_retval@228) (var_ref lightDir) ) ) ) (declare (temporary ) float clamp_retval@278) (assign (x) (var_ref clamp_retval@278) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@228) (var_ref normalize_retval@275) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@279) (assign (x) (var_ref clamp_retval@279) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@229) (var_ref normalize_retval@275) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@280) (assign (x) (var_ref assignment_tmp@280) (expression float * (var_ref max_retval) (var_ref max_retval) ) ) (declare (temporary ) float assignment_tmp@281) (assign (x) (var_ref assignment_tmp@281) (expression float * (var_ref clamp_retval@278) (var_ref clamp_retval@278) ) ) (declare (temporary ) float assignment_tmp@282) (assign (x) (var_ref assignment_tmp@282) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@278) ) (expression float rcp (var_ref clamp_retval@279) ) ) ) (assign (xyz) (var_ref cookTorrance_retval@274) (expression vec3 * (var_ref clamp_retval@277) (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (816)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@279) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@280) ) (expression float * (var_ref assignment_tmp@281) (var_ref assignment_tmp@281) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@281) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@280) (var_ref assignment_tmp@281) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@282) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@282) (var_ref clamp_retval@277) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@277) ) (constant float (0.010000)) ) ) ) ) (swiz xyz (var_ref texture_retval@226) )) (expression vec3 * (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (800)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@277) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) (swiz xyz (var_ref texture_retval@224) )) ) ) ) (declare (temporary ) vec2 ubo_load_temp@283) (assign (xy) (var_ref ubo_load_temp@283) (expression vec2 ubo_load (constant uint (2)) (constant uint (520)) ) ) (declare () float c@284) (declare (temporary ) vec2 assignment_tmp@285) (assign (xy) (var_ref assignment_tmp@285) (expression vec2 * (swiz xy (var_ref posL4) )(expression float rcp (swiz w (var_ref posL4) )) ) ) (declare (temporary ) vec3 vec_ctor@286) (assign (xy) (var_ref vec_ctor@286) (var_ref ubo_load_temp@283) ) (assign (z) (var_ref vec_ctor@286) (expression float neg (swiz x (var_ref ubo_load_temp@283) )) ) (declare (temporary ) vec3 assignment_tmp@287) (assign (xyz) (var_ref assignment_tmp@287) (expression vec3 * (var_ref vec_ctor@286) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@288) (assign (xyzw) (var_ref texture_retval@288) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@285) (expression vec2 neg (swiz xy (var_ref assignment_tmp@287) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@289) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@288) )) ( (assign (x) (var_ref conditional_tmp@289) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@289) (constant int (0)) ) )) (assign (x) (var_ref c@284) (expression float i2f (var_ref conditional_tmp@289) ) ) (declare (temporary ) vec4 texture_retval@290) (assign (xyzw) (var_ref texture_retval@290) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@285) (expression vec2 neg (swiz zy (var_ref assignment_tmp@287) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@291) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@290) )) ( (assign (x) (var_ref conditional_tmp@291) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@291) (constant int (0)) ) )) (assign (x) (var_ref c@284) (expression float + (var_ref c@284) (expression float i2f (var_ref conditional_tmp@291) ) ) ) (declare (temporary ) vec4 texture_retval@292) (assign (xyzw) (var_ref texture_retval@292) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@285) (swiz zy (var_ref assignment_tmp@287) )) 0 1 () )) (declare (temporary ) int conditional_tmp@293) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@292) )) ( (assign (x) (var_ref conditional_tmp@293) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@293) (constant int (0)) ) )) (assign (x) (var_ref c@284) (expression float + (var_ref c@284) (expression float i2f (var_ref conditional_tmp@293) ) ) ) (declare (temporary ) vec4 texture_retval@294) (assign (xyzw) (var_ref texture_retval@294) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@285) (swiz xy (var_ref assignment_tmp@287) )) 0 1 () )) (declare (temporary ) int conditional_tmp@295) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@294) )) ( (assign (x) (var_ref conditional_tmp@295) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@295) (constant int (0)) ) )) (assign (x) (var_ref c@284) (expression float + (var_ref c@284) (expression float i2f (var_ref conditional_tmp@295) ) ) ) (assign (xyz) (var_ref tmpColour) (expression vec3 * (var_ref cookTorrance_retval@274) (expression float * (var_ref c@284) (constant float (0.250000)) ) ) ) (declare (temporary ) vec3 cse@296) (assign (xyz) (var_ref cse@296) (expression vec3 ubo_load (constant uint (2)) (constant uint (832)) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref tmpColour) (expression float * (expression float rcp (expression float + (expression float + (constant float (1.000000)) (expression float * (swiz y (var_ref cse@296) )(var_ref length_retval@267) ) ) (expression float * (expression float * (swiz z (var_ref cse@296) )(var_ref length_retval@267) ) (var_ref length_retval@267) ) ) ) (var_ref pow_retval@272) ) ) ) ) ) ()) (assign (xyz) (var_ref outColour) (var_ref finalColour) ) (assign (w) (var_ref outColour) (constant float (1.000000)) ) (assign (xyzw) (var_ref outColour@297) (var_ref outColour) ) )) ) ) Vertex Shader: 549654890VertexShader_vs Fragment Shader: 549654890PixelShader_ps GLSL program result : Vertex Shader: 549654890VertexShader_vs Fragment Shader: 549654890PixelShader_ps GLSL program pipeline validation result: Texture unit 0 is accessed both as sampler2DArray and sampler2D GLSL compile log: 553849194VertexShader_vs 0:11(1): error: #extension directive is not allowed in the middle of a shader Vertex Program 553849194VertexShader_vs failed to compile. See compile log above for details. GLSL compiled: 553849194PixelShader_ps GLSL IR for linked fragment program 15: ( (declare (shader_in ) vec4 packed:depth,normal) (declare (shader_in flat) ivec4 packed:drawId) (declare (shader_in ) vec4 packed:pos) (declare (shader_in ) vec4 posL0) (declare (shader_in ) vec4 posL1) (declare (shader_in ) vec4 posL2) (declare (shader_in ) vec4 posL3) (declare (shader_in ) vec4 posL4) (declare (uniform ) InstanceBuffer instance) (declare (uniform ) MaterialBuf materialArray) (declare (uniform ) PassBuffer pass) (declare (shader_out ) vec4 outColour) (declare (temporary ) vec4 outColour) (declare (uniform ) samplerCube texEnvProbeMap) (declare (uniform ) (array sampler2D 5) texShadowMap) (function main (signature void (parameters ) ( (declare () vec3 tmpColour) (declare () vec3 lightDir) (declare () vec3 finalColour) (declare () float fShadow) (declare (temporary ) vec4 ubo_load_temp_kD) (declare (temporary ) vec4 ubo_load_temp_kS) (declare (temporary ) vec4 ubo_load_temp_F0) (declare (temporary ) uint ubo_load_temp_offset) (assign (x) (var_ref ubo_load_temp_offset) (expression uint * (expression uint & (swiz x (expression uvec4 ubo_load (constant uint (0)) (expression uint * (expression uint i2u (swiz x (var_ref packed:drawId) )) (constant uint (16)) ) ) )(constant uint (511)) ) (constant uint (240)) ) ) (assign (xyzw) (var_ref ubo_load_temp_kD) (expression vec4 ubo_load (constant uint (1)) (var_ref ubo_load_temp_offset) ) ) (assign (xyzw) (var_ref ubo_load_temp_kS) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (16)) ) ) ) (assign (xyzw) (var_ref ubo_load_temp_F0) (expression vec4 ubo_load (constant uint (1)) (expression uint + (var_ref ubo_load_temp_offset) (constant uint (32)) ) ) ) (declare (temporary ) vec3 normalize_retval) (assign (xyz) (var_ref normalize_retval) (expression vec3 * (swiz yzw (var_ref packed:depth,normal) )(expression float rsq (expression float dot (swiz yzw (var_ref packed:depth,normal) )(swiz yzw (var_ref packed:depth,normal) )) ) ) ) (assign (x) (var_ref fShadow) (constant float (1.000000)) ) (declare (temporary ) float ubo_load_temp) (assign (x) (var_ref ubo_load_temp) (expression float ubo_load (constant uint (2)) (constant uint (576)) ) ) (if (expression bool <= (swiz x (var_ref packed:depth,normal) )(var_ref ubo_load_temp) ) ( (declare (temporary ) vec2 ubo_load_temp@333) (assign (xy) (var_ref ubo_load_temp@333) (expression vec2 ubo_load (constant uint (2)) (constant uint (200)) ) ) (declare () float c) (declare (temporary ) vec2 assignment_tmp) (assign (xy) (var_ref assignment_tmp) (expression vec2 * (swiz xy (var_ref posL0) )(expression float rcp (swiz w (var_ref posL0) )) ) ) (declare (temporary ) vec3 vec_ctor) (assign (xy) (var_ref vec_ctor) (var_ref ubo_load_temp@333) ) (assign (z) (var_ref vec_ctor) (expression float neg (swiz x (var_ref ubo_load_temp@333) )) ) (declare (temporary ) vec3 assignment_tmp@334) (assign (xyz) (var_ref assignment_tmp@334) (expression vec3 * (var_ref vec_ctor) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval) (assign (xyzw) (var_ref texture_retval) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (expression vec2 neg (swiz xy (var_ref assignment_tmp@334) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval) )) ( (assign (x) (var_ref conditional_tmp) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float i2f (var_ref conditional_tmp) ) ) (declare (temporary ) vec4 texture_retval@335) (assign (xyzw) (var_ref texture_retval@335) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (expression vec2 neg (swiz zy (var_ref assignment_tmp@334) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@336) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@335) )) ( (assign (x) (var_ref conditional_tmp@336) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@336) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@336) ) ) ) (declare (temporary ) vec4 texture_retval@337) (assign (xyzw) (var_ref texture_retval@337) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (swiz zy (var_ref assignment_tmp@334) )) 0 1 () )) (declare (temporary ) int conditional_tmp@338) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@337) )) ( (assign (x) (var_ref conditional_tmp@338) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@338) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@338) ) ) ) (declare (temporary ) vec4 texture_retval@339) (assign (xyzw) (var_ref texture_retval@339) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (0)) ) (expression vec2 + (var_ref assignment_tmp) (swiz xy (var_ref assignment_tmp@334) )) 0 1 () )) (declare (temporary ) int conditional_tmp@340) (if (expression bool <= (swiz z (var_ref posL0) )(swiz x (var_ref texture_retval@339) )) ( (assign (x) (var_ref conditional_tmp@340) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@340) (constant int (0)) ) )) (assign (x) (var_ref c) (expression float + (var_ref c) (expression float i2f (var_ref conditional_tmp@340) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c) (constant float (0.250000)) ) ) ) ( (declare (temporary ) float ubo_load_temp@341) (assign (x) (var_ref ubo_load_temp@341) (expression float ubo_load (constant uint (2)) (constant uint (580)) ) ) (if (expression bool <= (swiz x (var_ref packed:depth,normal) )(var_ref ubo_load_temp@341) ) ( (declare (temporary ) vec2 ubo_load_temp@342) (assign (xy) (var_ref ubo_load_temp@342) (expression vec2 ubo_load (constant uint (2)) (constant uint (280)) ) ) (declare () float c@343) (declare (temporary ) vec2 assignment_tmp@344) (assign (xy) (var_ref assignment_tmp@344) (expression vec2 * (swiz xy (var_ref posL1) )(expression float rcp (swiz w (var_ref posL1) )) ) ) (declare (temporary ) vec3 vec_ctor@345) (assign (xy) (var_ref vec_ctor@345) (var_ref ubo_load_temp@342) ) (assign (z) (var_ref vec_ctor@345) (expression float neg (swiz x (var_ref ubo_load_temp@342) )) ) (declare (temporary ) vec3 assignment_tmp@346) (assign (xyz) (var_ref assignment_tmp@346) (expression vec3 * (var_ref vec_ctor@345) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@347) (assign (xyzw) (var_ref texture_retval@347) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@344) (expression vec2 neg (swiz xy (var_ref assignment_tmp@346) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@348) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@347) )) ( (assign (x) (var_ref conditional_tmp@348) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@348) (constant int (0)) ) )) (assign (x) (var_ref c@343) (expression float i2f (var_ref conditional_tmp@348) ) ) (declare (temporary ) vec4 texture_retval@349) (assign (xyzw) (var_ref texture_retval@349) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@344) (expression vec2 neg (swiz zy (var_ref assignment_tmp@346) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@350) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@349) )) ( (assign (x) (var_ref conditional_tmp@350) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@350) (constant int (0)) ) )) (assign (x) (var_ref c@343) (expression float + (var_ref c@343) (expression float i2f (var_ref conditional_tmp@350) ) ) ) (declare (temporary ) vec4 texture_retval@351) (assign (xyzw) (var_ref texture_retval@351) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@344) (swiz zy (var_ref assignment_tmp@346) )) 0 1 () )) (declare (temporary ) int conditional_tmp@352) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@351) )) ( (assign (x) (var_ref conditional_tmp@352) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@352) (constant int (0)) ) )) (assign (x) (var_ref c@343) (expression float + (var_ref c@343) (expression float i2f (var_ref conditional_tmp@352) ) ) ) (declare (temporary ) vec4 texture_retval@353) (assign (xyzw) (var_ref texture_retval@353) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (1)) ) (expression vec2 + (var_ref assignment_tmp@344) (swiz xy (var_ref assignment_tmp@346) )) 0 1 () )) (declare (temporary ) int conditional_tmp@354) (if (expression bool <= (swiz z (var_ref posL1) )(swiz x (var_ref texture_retval@353) )) ( (assign (x) (var_ref conditional_tmp@354) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@354) (constant int (0)) ) )) (assign (x) (var_ref c@343) (expression float + (var_ref c@343) (expression float i2f (var_ref conditional_tmp@354) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c@343) (constant float (0.250000)) ) ) ) ( (declare (temporary ) float ubo_load_temp@355) (assign (x) (var_ref ubo_load_temp@355) (expression float ubo_load (constant uint (2)) (constant uint (584)) ) ) (if (expression bool <= (swiz x (var_ref packed:depth,normal) )(var_ref ubo_load_temp@355) ) ( (declare (temporary ) vec2 ubo_load_temp@356) (assign (xy) (var_ref ubo_load_temp@356) (expression vec2 ubo_load (constant uint (2)) (constant uint (360)) ) ) (declare () float c@357) (declare (temporary ) vec2 assignment_tmp@358) (assign (xy) (var_ref assignment_tmp@358) (expression vec2 * (swiz xy (var_ref posL2) )(expression float rcp (swiz w (var_ref posL2) )) ) ) (declare (temporary ) vec3 vec_ctor@359) (assign (xy) (var_ref vec_ctor@359) (var_ref ubo_load_temp@356) ) (assign (z) (var_ref vec_ctor@359) (expression float neg (swiz x (var_ref ubo_load_temp@356) )) ) (declare (temporary ) vec3 assignment_tmp@360) (assign (xyz) (var_ref assignment_tmp@360) (expression vec3 * (var_ref vec_ctor@359) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@361) (assign (xyzw) (var_ref texture_retval@361) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@358) (expression vec2 neg (swiz xy (var_ref assignment_tmp@360) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@362) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@361) )) ( (assign (x) (var_ref conditional_tmp@362) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@362) (constant int (0)) ) )) (assign (x) (var_ref c@357) (expression float i2f (var_ref conditional_tmp@362) ) ) (declare (temporary ) vec4 texture_retval@363) (assign (xyzw) (var_ref texture_retval@363) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@358) (expression vec2 neg (swiz zy (var_ref assignment_tmp@360) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@364) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@363) )) ( (assign (x) (var_ref conditional_tmp@364) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@364) (constant int (0)) ) )) (assign (x) (var_ref c@357) (expression float + (var_ref c@357) (expression float i2f (var_ref conditional_tmp@364) ) ) ) (declare (temporary ) vec4 texture_retval@365) (assign (xyzw) (var_ref texture_retval@365) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@358) (swiz zy (var_ref assignment_tmp@360) )) 0 1 () )) (declare (temporary ) int conditional_tmp@366) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@365) )) ( (assign (x) (var_ref conditional_tmp@366) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@366) (constant int (0)) ) )) (assign (x) (var_ref c@357) (expression float + (var_ref c@357) (expression float i2f (var_ref conditional_tmp@366) ) ) ) (declare (temporary ) vec4 texture_retval@367) (assign (xyzw) (var_ref texture_retval@367) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (2)) ) (expression vec2 + (var_ref assignment_tmp@358) (swiz xy (var_ref assignment_tmp@360) )) 0 1 () )) (declare (temporary ) int conditional_tmp@368) (if (expression bool <= (swiz z (var_ref posL2) )(swiz x (var_ref texture_retval@367) )) ( (assign (x) (var_ref conditional_tmp@368) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@368) (constant int (0)) ) )) (assign (x) (var_ref c@357) (expression float + (var_ref c@357) (expression float i2f (var_ref conditional_tmp@368) ) ) ) (assign (x) (var_ref fShadow) (expression float * (var_ref c@357) (constant float (0.250000)) ) ) ) ()) )) )) (declare (temporary ) vec3 normalize_retval@369) (declare () vec3 x) (assign (xyz) (var_ref x) (expression vec3 neg (swiz xyz (var_ref packed:pos) )) ) (assign (xyz) (var_ref normalize_retval@369) (expression vec3 * (var_ref x) (expression float rsq (expression float dot (var_ref x) (var_ref x) ) ) ) ) (declare (temporary ) float clamp_retval) (assign (x) (var_ref clamp_retval) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@369) ) ) ) (declare (temporary ) vec3 ubo_load_temp@370) (assign (xyz) (var_ref ubo_load_temp@370) (expression vec3 ubo_load (constant uint (2)) (constant uint (592)) ) ) (declare (temporary ) vec3 normalize_retval@371) (declare () vec3 x@372) (assign (xyz) (var_ref x@372) (expression vec3 + (var_ref ubo_load_temp@370) (var_ref normalize_retval@369) ) ) (assign (xyz) (var_ref normalize_retval@371) (expression vec3 * (var_ref x@372) (expression float rsq (expression float dot (var_ref x@372) (var_ref x@372) ) ) ) ) (declare (temporary ) float clamp_retval@373) (assign (x) (var_ref clamp_retval@373) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref ubo_load_temp@370) ) ) ) (declare (temporary ) float clamp_retval@374) (assign (x) (var_ref clamp_retval@374) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@371) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@375) (assign (x) (var_ref clamp_retval@375) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@369) (var_ref normalize_retval@371) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@376) (assign (x) (var_ref assignment_tmp@376) (expression float * (swiz w (var_ref ubo_load_temp_kS) )(swiz w (var_ref ubo_load_temp_kS) )) ) (declare (temporary ) float assignment_tmp@377) (assign (x) (var_ref assignment_tmp@377) (expression float * (var_ref clamp_retval@374) (var_ref clamp_retval@374) ) ) (declare (temporary ) float assignment_tmp@378) (assign (x) (var_ref assignment_tmp@378) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@374) ) (expression float rcp (var_ref clamp_retval@375) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 * (var_ref clamp_retval@373) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (624)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@375) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@376) ) (expression float * (var_ref assignment_tmp@377) (var_ref assignment_tmp@377) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@377) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@376) (var_ref assignment_tmp@377) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@378) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@378) (var_ref clamp_retval@373) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@373) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (608)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@373) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 * (var_ref finalColour) (var_ref fShadow) ) ) (declare (temporary ) vec3 cse) (assign (xyz) (var_ref cse) (expression vec3 ubo_load (constant uint (2)) (constant uint (688)) ) ) (assign (xyz) (var_ref lightDir) (expression vec3 + (var_ref cse) (expression vec3 neg (swiz xyz (var_ref packed:pos) )) ) ) (declare (temporary ) float length_retval) (assign (x) (var_ref length_retval) (expression float sqrt (expression float dot (var_ref lightDir) (var_ref lightDir) ) ) ) (declare () vec3 x@379) (assign (xyz) (var_ref x@379) (expression vec3 + (swiz xyz (var_ref packed:pos) )(expression vec3 neg (var_ref cse) ) ) ) (declare (temporary ) float dot_retval) (assign (x) (var_ref dot_retval) (expression float dot (expression vec3 * (var_ref x@379) (expression float rsq (expression float dot (var_ref x@379) (var_ref x@379) ) ) ) (expression vec3 ubo_load (constant uint (2)) (constant uint (752)) ) ) ) (declare (temporary ) vec3 ubo_load_temp@380) (assign (xyz) (var_ref ubo_load_temp@380) (expression vec3 ubo_load (constant uint (2)) (constant uint (736)) ) ) (declare (temporary ) vec3 ubo_load_temp@381) (assign (xyz) (var_ref ubo_load_temp@381) (expression vec3 ubo_load (constant uint (2)) (constant uint (768)) ) ) (if (expression bool && (expression bool <= (var_ref length_retval) (swiz x (var_ref ubo_load_temp@380) )) (expression bool >= (var_ref dot_retval) (swiz y (var_ref ubo_load_temp@381) )) ) ( (assign (xyz) (var_ref lightDir) (expression vec3 * (var_ref lightDir) (expression float rcp (var_ref length_retval) ) ) ) (declare (temporary ) float pow_retval) (declare (temporary ) vec3 cse@382) (assign (xyz) (var_ref cse@382) (expression vec3 ubo_load (constant uint (2)) (constant uint (768)) ) ) (assign (x) (var_ref pow_retval) (expression float pow (expression float sat (expression float * (expression float + (var_ref dot_retval) (expression float neg (swiz y (var_ref cse@382) )) ) (swiz x (var_ref cse@382) )) ) (swiz z (var_ref cse@382) )) ) (declare (temporary ) vec3 cookTorrance_retval) (declare (temporary ) vec3 normalize_retval@383) (declare () vec3 x@384) (assign (xyz) (var_ref x@384) (expression vec3 + (var_ref lightDir) (var_ref normalize_retval@369) ) ) (assign (xyz) (var_ref normalize_retval@383) (expression vec3 * (var_ref x@384) (expression float rsq (expression float dot (var_ref x@384) (var_ref x@384) ) ) ) ) (declare (temporary ) float clamp_retval@385) (assign (x) (var_ref clamp_retval@385) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref lightDir) ) ) ) (declare (temporary ) float clamp_retval@386) (assign (x) (var_ref clamp_retval@386) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@383) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@387) (assign (x) (var_ref clamp_retval@387) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@369) (var_ref normalize_retval@383) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@388) (assign (x) (var_ref assignment_tmp@388) (expression float * (swiz w (var_ref ubo_load_temp_kS) )(swiz w (var_ref ubo_load_temp_kS) )) ) (declare (temporary ) float assignment_tmp@389) (assign (x) (var_ref assignment_tmp@389) (expression float * (var_ref clamp_retval@386) (var_ref clamp_retval@386) ) ) (declare (temporary ) float assignment_tmp@390) (assign (x) (var_ref assignment_tmp@390) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@386) ) (expression float rcp (var_ref clamp_retval@387) ) ) ) (assign (xyz) (var_ref cookTorrance_retval) (expression vec3 * (var_ref clamp_retval@385) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (720)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@387) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@388) ) (expression float * (var_ref assignment_tmp@389) (var_ref assignment_tmp@389) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@389) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@388) (var_ref assignment_tmp@389) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@390) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@390) (var_ref clamp_retval@385) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@385) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (704)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@385) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) ) ) ) (declare (temporary ) vec2 ubo_load_temp@391) (assign (xy) (var_ref ubo_load_temp@391) (expression vec2 ubo_load (constant uint (2)) (constant uint (440)) ) ) (declare () float c@392) (declare (temporary ) vec2 assignment_tmp@393) (assign (xy) (var_ref assignment_tmp@393) (expression vec2 * (swiz xy (var_ref posL3) )(expression float rcp (swiz w (var_ref posL3) )) ) ) (declare (temporary ) vec3 vec_ctor@394) (assign (xy) (var_ref vec_ctor@394) (var_ref ubo_load_temp@391) ) (assign (z) (var_ref vec_ctor@394) (expression float neg (swiz x (var_ref ubo_load_temp@391) )) ) (declare (temporary ) vec3 assignment_tmp@395) (assign (xyz) (var_ref assignment_tmp@395) (expression vec3 * (var_ref vec_ctor@394) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@396) (assign (xyzw) (var_ref texture_retval@396) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@393) (expression vec2 neg (swiz xy (var_ref assignment_tmp@395) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@397) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@396) )) ( (assign (x) (var_ref conditional_tmp@397) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@397) (constant int (0)) ) )) (assign (x) (var_ref c@392) (expression float i2f (var_ref conditional_tmp@397) ) ) (declare (temporary ) vec4 texture_retval@398) (assign (xyzw) (var_ref texture_retval@398) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@393) (expression vec2 neg (swiz zy (var_ref assignment_tmp@395) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@399) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@398) )) ( (assign (x) (var_ref conditional_tmp@399) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@399) (constant int (0)) ) )) (assign (x) (var_ref c@392) (expression float + (var_ref c@392) (expression float i2f (var_ref conditional_tmp@399) ) ) ) (declare (temporary ) vec4 texture_retval@400) (assign (xyzw) (var_ref texture_retval@400) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@393) (swiz zy (var_ref assignment_tmp@395) )) 0 1 () )) (declare (temporary ) int conditional_tmp@401) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@400) )) ( (assign (x) (var_ref conditional_tmp@401) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@401) (constant int (0)) ) )) (assign (x) (var_ref c@392) (expression float + (var_ref c@392) (expression float i2f (var_ref conditional_tmp@401) ) ) ) (declare (temporary ) vec4 texture_retval@402) (assign (xyzw) (var_ref texture_retval@402) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (3)) ) (expression vec2 + (var_ref assignment_tmp@393) (swiz xy (var_ref assignment_tmp@395) )) 0 1 () )) (declare (temporary ) int conditional_tmp@403) (if (expression bool <= (swiz z (var_ref posL3) )(swiz x (var_ref texture_retval@402) )) ( (assign (x) (var_ref conditional_tmp@403) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@403) (constant int (0)) ) )) (assign (x) (var_ref c@392) (expression float + (var_ref c@392) (expression float i2f (var_ref conditional_tmp@403) ) ) ) (assign (xyz) (var_ref tmpColour) (expression vec3 * (var_ref cookTorrance_retval) (expression float * (var_ref c@392) (constant float (0.250000)) ) ) ) (declare (temporary ) vec3 cse@404) (assign (xyz) (var_ref cse@404) (expression vec3 ubo_load (constant uint (2)) (constant uint (736)) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref tmpColour) (expression float * (expression float rcp (expression float + (expression float + (constant float (1.000000)) (expression float * (swiz y (var_ref cse@404) )(var_ref length_retval) ) ) (expression float * (expression float * (swiz z (var_ref cse@404) )(var_ref length_retval) ) (var_ref length_retval) ) ) ) (var_ref pow_retval) ) ) ) ) ) ()) (declare (temporary ) vec3 cse@405) (assign (xyz) (var_ref cse@405) (expression vec3 ubo_load (constant uint (2)) (constant uint (784)) ) ) (assign (xyz) (var_ref lightDir) (expression vec3 + (var_ref cse@405) (expression vec3 neg (swiz xyz (var_ref packed:pos) )) ) ) (declare (temporary ) float length_retval@406) (assign (x) (var_ref length_retval@406) (expression float sqrt (expression float dot (var_ref lightDir) (var_ref lightDir) ) ) ) (declare () vec3 x@407) (assign (xyz) (var_ref x@407) (expression vec3 + (swiz xyz (var_ref packed:pos) )(expression vec3 neg (var_ref cse@405) ) ) ) (declare (temporary ) float dot_retval@408) (assign (x) (var_ref dot_retval@408) (expression float dot (expression vec3 * (var_ref x@407) (expression float rsq (expression float dot (var_ref x@407) (var_ref x@407) ) ) ) (expression vec3 ubo_load (constant uint (2)) (constant uint (848)) ) ) ) (declare (temporary ) vec3 ubo_load_temp@409) (assign (xyz) (var_ref ubo_load_temp@409) (expression vec3 ubo_load (constant uint (2)) (constant uint (832)) ) ) (declare (temporary ) vec3 ubo_load_temp@410) (assign (xyz) (var_ref ubo_load_temp@410) (expression vec3 ubo_load (constant uint (2)) (constant uint (864)) ) ) (if (expression bool && (expression bool <= (var_ref length_retval@406) (swiz x (var_ref ubo_load_temp@409) )) (expression bool >= (var_ref dot_retval@408) (swiz y (var_ref ubo_load_temp@410) )) ) ( (assign (xyz) (var_ref lightDir) (expression vec3 * (var_ref lightDir) (expression float rcp (var_ref length_retval@406) ) ) ) (declare (temporary ) float pow_retval@411) (declare (temporary ) vec3 cse@412) (assign (xyz) (var_ref cse@412) (expression vec3 ubo_load (constant uint (2)) (constant uint (864)) ) ) (assign (x) (var_ref pow_retval@411) (expression float pow (expression float sat (expression float * (expression float + (var_ref dot_retval@408) (expression float neg (swiz y (var_ref cse@412) )) ) (swiz x (var_ref cse@412) )) ) (swiz z (var_ref cse@412) )) ) (declare (temporary ) vec3 cookTorrance_retval@413) (declare (temporary ) vec3 normalize_retval@414) (declare () vec3 x@415) (assign (xyz) (var_ref x@415) (expression vec3 + (var_ref lightDir) (var_ref normalize_retval@369) ) ) (assign (xyz) (var_ref normalize_retval@414) (expression vec3 * (var_ref x@415) (expression float rsq (expression float dot (var_ref x@415) (var_ref x@415) ) ) ) ) (declare (temporary ) float clamp_retval@416) (assign (x) (var_ref clamp_retval@416) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref lightDir) ) ) ) (declare (temporary ) float clamp_retval@417) (assign (x) (var_ref clamp_retval@417) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@414) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@418) (assign (x) (var_ref clamp_retval@418) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@369) (var_ref normalize_retval@414) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@419) (assign (x) (var_ref assignment_tmp@419) (expression float * (swiz w (var_ref ubo_load_temp_kS) )(swiz w (var_ref ubo_load_temp_kS) )) ) (declare (temporary ) float assignment_tmp@420) (assign (x) (var_ref assignment_tmp@420) (expression float * (var_ref clamp_retval@417) (var_ref clamp_retval@417) ) ) (declare (temporary ) float assignment_tmp@421) (assign (x) (var_ref assignment_tmp@421) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@417) ) (expression float rcp (var_ref clamp_retval@418) ) ) ) (assign (xyz) (var_ref cookTorrance_retval@413) (expression vec3 * (var_ref clamp_retval@416) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 ubo_load (constant uint (2)) (constant uint (816)) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@418) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@419) ) (expression float * (var_ref assignment_tmp@420) (var_ref assignment_tmp@420) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@420) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@419) (var_ref assignment_tmp@420) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@421) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@421) (var_ref clamp_retval@416) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@416) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(expression vec3 ubo_load (constant uint (2)) (constant uint (800)) ) ) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@416) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) ) ) ) (declare (temporary ) vec2 ubo_load_temp@422) (assign (xy) (var_ref ubo_load_temp@422) (expression vec2 ubo_load (constant uint (2)) (constant uint (520)) ) ) (declare () float c@423) (declare (temporary ) vec2 assignment_tmp@424) (assign (xy) (var_ref assignment_tmp@424) (expression vec2 * (swiz xy (var_ref posL4) )(expression float rcp (swiz w (var_ref posL4) )) ) ) (declare (temporary ) vec3 vec_ctor@425) (assign (xy) (var_ref vec_ctor@425) (var_ref ubo_load_temp@422) ) (assign (z) (var_ref vec_ctor@425) (expression float neg (swiz x (var_ref ubo_load_temp@422) )) ) (declare (temporary ) vec3 assignment_tmp@426) (assign (xyz) (var_ref assignment_tmp@426) (expression vec3 * (var_ref vec_ctor@425) (constant float (0.300000)) ) ) (declare (temporary ) vec4 texture_retval@427) (assign (xyzw) (var_ref texture_retval@427) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@424) (expression vec2 neg (swiz xy (var_ref assignment_tmp@426) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@428) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@427) )) ( (assign (x) (var_ref conditional_tmp@428) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@428) (constant int (0)) ) )) (assign (x) (var_ref c@423) (expression float i2f (var_ref conditional_tmp@428) ) ) (declare (temporary ) vec4 texture_retval@429) (assign (xyzw) (var_ref texture_retval@429) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@424) (expression vec2 neg (swiz zy (var_ref assignment_tmp@426) )) ) 0 1 () )) (declare (temporary ) int conditional_tmp@430) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@429) )) ( (assign (x) (var_ref conditional_tmp@430) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@430) (constant int (0)) ) )) (assign (x) (var_ref c@423) (expression float + (var_ref c@423) (expression float i2f (var_ref conditional_tmp@430) ) ) ) (declare (temporary ) vec4 texture_retval@431) (assign (xyzw) (var_ref texture_retval@431) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@424) (swiz zy (var_ref assignment_tmp@426) )) 0 1 () )) (declare (temporary ) int conditional_tmp@432) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@431) )) ( (assign (x) (var_ref conditional_tmp@432) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@432) (constant int (0)) ) )) (assign (x) (var_ref c@423) (expression float + (var_ref c@423) (expression float i2f (var_ref conditional_tmp@432) ) ) ) (declare (temporary ) vec4 texture_retval@433) (assign (xyzw) (var_ref texture_retval@433) (tex vec4 (array_ref (var_ref texShadowMap) (constant int (4)) ) (expression vec2 + (var_ref assignment_tmp@424) (swiz xy (var_ref assignment_tmp@426) )) 0 1 () )) (declare (temporary ) int conditional_tmp@434) (if (expression bool <= (swiz z (var_ref posL4) )(swiz x (var_ref texture_retval@433) )) ( (assign (x) (var_ref conditional_tmp@434) (constant int (1)) ) ) ( (assign (x) (var_ref conditional_tmp@434) (constant int (0)) ) )) (assign (x) (var_ref c@423) (expression float + (var_ref c@423) (expression float i2f (var_ref conditional_tmp@434) ) ) ) (assign (xyz) (var_ref tmpColour) (expression vec3 * (var_ref cookTorrance_retval@413) (expression float * (var_ref c@423) (constant float (0.250000)) ) ) ) (declare (temporary ) vec3 cse@435) (assign (xyz) (var_ref cse@435) (expression vec3 ubo_load (constant uint (2)) (constant uint (832)) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref tmpColour) (expression float * (expression float rcp (expression float + (expression float + (constant float (1.000000)) (expression float * (swiz y (var_ref cse@435) )(var_ref length_retval@406) ) ) (expression float * (expression float * (swiz z (var_ref cse@435) )(var_ref length_retval@406) ) (var_ref length_retval@406) ) ) ) (var_ref pow_retval@411) ) ) ) ) ) ()) (declare (temporary ) vec3 assignment_tmp@436) (assign (xyz) (var_ref assignment_tmp@436) (expression vec3 + (expression vec3 * (expression float * (constant float (2.000000)) (expression float dot (var_ref normalize_retval@369) (var_ref normalize_retval) ) ) (var_ref normalize_retval) ) (expression vec3 neg (var_ref normalize_retval@369) ) ) ) (declare (temporary ) vec4 textureLod_retval) (declare (temporary ) vec3 flattening_tmp) (assign (x) (var_ref flattening_tmp) (expression float dot (var_ref assignment_tmp@436) (expression vec3 ubo_load (constant uint (2)) (constant uint (528)) ) ) ) (assign (y) (var_ref flattening_tmp) (expression float dot (var_ref assignment_tmp@436) (expression vec3 ubo_load (constant uint (2)) (constant uint (544)) ) ) ) (assign (z) (var_ref flattening_tmp) (expression float dot (var_ref assignment_tmp@436) (expression vec3 ubo_load (constant uint (2)) (constant uint (560)) ) ) ) (assign (xyzw) (var_ref textureLod_retval) (txl vec4 (var_ref texEnvProbeMap) (var_ref flattening_tmp) 0 1 () (expression float * (swiz w (var_ref ubo_load_temp_kS) )(constant float (12.000000)) ) )) (declare (temporary ) vec3 normalize_retval@437) (declare () vec3 x@438) (assign (xyz) (var_ref x@438) (expression vec3 + (var_ref assignment_tmp@436) (var_ref normalize_retval@369) ) ) (assign (xyz) (var_ref normalize_retval@437) (expression vec3 * (var_ref x@438) (expression float rsq (expression float dot (var_ref x@438) (var_ref x@438) ) ) ) ) (declare (temporary ) float clamp_retval@439) (assign (x) (var_ref clamp_retval@439) (expression float sat (expression float dot (var_ref normalize_retval) (var_ref assignment_tmp@436) ) ) ) (declare (temporary ) float clamp_retval@440) (assign (x) (var_ref clamp_retval@440) (expression float sat (expression float max (expression float dot (var_ref normalize_retval) (var_ref normalize_retval@437) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float clamp_retval@441) (assign (x) (var_ref clamp_retval@441) (expression float sat (expression float max (expression float dot (var_ref normalize_retval@369) (var_ref normalize_retval@437) ) (constant float (0.001000)) ) ) ) (declare (temporary ) float assignment_tmp@442) (assign (x) (var_ref assignment_tmp@442) (expression float * (swiz w (var_ref ubo_load_temp_kS) )(swiz w (var_ref ubo_load_temp_kS) )) ) (declare (temporary ) float assignment_tmp@443) (assign (x) (var_ref assignment_tmp@443) (expression float * (var_ref clamp_retval@440) (var_ref clamp_retval@440) ) ) (declare (temporary ) float assignment_tmp@444) (assign (x) (var_ref assignment_tmp@444) (expression float * (expression float * (constant float (2.000000)) (var_ref clamp_retval@440) ) (expression float rcp (var_ref clamp_retval@441) ) ) ) (assign (xyz) (var_ref finalColour) (expression vec3 + (var_ref finalColour) (expression vec3 * (var_ref clamp_retval@439) (expression vec3 + (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kS) )(expression vec3 * (swiz xyz (var_ref textureLod_retval) )(expression float * (swiz w (var_ref ubo_load_temp_kS) )(swiz w (var_ref ubo_load_temp_kS) )) ) ) (expression float * (expression float * (expression float lrp (swiz x (var_ref ubo_load_temp_F0) )(constant float (1.000000)) (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@441) ) ) (constant float (5.000000)) ) ) (expression float * (expression float * (expression float min (expression float rcp (expression float * (expression float * (constant float (3.141593)) (var_ref assignment_tmp@442) ) (expression float * (var_ref assignment_tmp@443) (var_ref assignment_tmp@443) ) ) ) (constant float (65504.000000)) ) (expression float exp2 (expression float * (expression float * (expression float + (var_ref assignment_tmp@443) (constant float (-1.000000)) ) (expression float rcp (expression float * (var_ref assignment_tmp@442) (var_ref assignment_tmp@443) ) ) ) (constant float (1.442695)) ) ) ) (expression float min (constant float (1.000000)) (expression float min (expression float * (var_ref assignment_tmp@444) (var_ref clamp_retval) ) (expression float * (var_ref assignment_tmp@444) (var_ref clamp_retval@439) ) ) ) ) ) (expression float rcp (expression float max (expression float * (expression float * (constant float (4.000000)) (var_ref clamp_retval) ) (var_ref clamp_retval@439) ) (constant float (0.010000)) ) ) ) ) (expression vec3 * (expression vec3 * (swiz xyz (var_ref ubo_load_temp_kD) )(swiz xyz (var_ref textureLod_retval) )) (expression float + (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref ubo_load_temp_F0) )) ) (expression float * (expression float pow (expression float + (constant float (1.000000)) (expression float neg (var_ref clamp_retval@439) ) ) (constant float (5.000000)) ) (swiz x (var_ref ubo_load_temp_F0) )) ) ) ) ) ) ) (assign (xyz) (var_ref outColour) (var_ref finalColour) ) (assign (w) (var_ref outColour) (constant float (1.000000)) ) (assign (xyzw) (var_ref outColour@445) (var_ref outColour) ) )) ) ) Vertex Shader: 553849194VertexShader_vs Fragment Shader: 553849194PixelShader_ps GLSL program result : Vertex Shader: 553849194VertexShader_vs Fragment Shader: 553849194PixelShader_ps GLSL program pipeline validation result: GLSL compile log: 1610612736VertexShader_vs 0:11(1): error: #extension directive is not allowed in the middle of a shader Vertex Program 1610612736VertexShader_vs failed to compile. See compile log above for details. GLSL compiled: 1610612736PixelShader_ps GLSL IR for linked fragment program 19: ( (declare (shader_in ) vec4 colour) (declare (shader_in ) vec4 packed:uv0) (declare (uniform ) InstanceBuffer instance) (declare (uniform ) MaterialBuf materialArray) (declare (shader_out ) vec4 outColour) (declare (temporary ) vec4 outColour) (declare (uniform ) (array sampler2D 1) textureMaps) (function main (signature void (parameters ) ( (assign (xyzw) (var_ref outColour) (expression vec4 * (tex vec4 (array_ref (var_ref textureMaps) (constant int (0)) ) (swiz xy (var_ref packed:uv0) ) 0 1 () )(var_ref colour) ) ) (assign (xyzw) (var_ref outColour@446) (var_ref outColour) ) )) ) ) Vertex Shader: 1610612736VertexShader_vs Fragment Shader: 1610612736PixelShader_ps GLSL program result : GLSL IR for linked fragment program 0: ( (declare (uniform ) (array vec4 4) gl_CurrentAttribFragMESA) (declare (shader_out ) vec4 gl_FragColor) (declare (temporary ) vec4 gl_FragColor) (function main (signature void (parameters ) ( (assign (xyzw) (var_ref gl_FragColor) (array_ref (var_ref gl_CurrentAttribFragMESA) (constant uint (3)) ) ) (assign (xyzw) (var_ref gl_FragColor@447) (var_ref gl_FragColor) ) )) ) ) Unregistering ResourceManager for type Font DefaultWorkQueue('Root') shutting down on thread main. *-*-* OGRE Shutdown Unregistering ResourceManager for type OldSkeleton Unregistering ResourceManager for type Mesh2 Unregistering ResourceManager for type Mesh Unregistering ResourceManager for type HighLevelGpuProgram Unregistering ResourceManager for type Material Uninstalling plugin: ParticleFX Plugin successfully uninstalled Unloading library /home/spacegaier/dev/ogre_build_2_1/lib/Plugin_ParticleFX Uninstalling plugin: GL 3+ RenderSystem Unregistering ResourceManager for type GpuProgram Unregistering ResourceManager for type Texture ****************************** *** Stopping GLX Subsystem *** ******************************