If a buffer of specific size is allocated or bufferSubData is used we no longer are able to accurately estimate how many 'values' are in the buffer and it'll be set to -1
Using queries to properly determine the offsets of uniforms in the uniform block. This is due to dirLight.strength having 3 more floats added to align us on 4-float boundaries and creating some padding between the entries. So to write the data properly we need to figure out the offset