That works for square textures like in the associated tests, but note that you can end up with levels with 0 width/height for non-square textures this way. See also e.g. wined3d_texture_get_level_width(). We may want to introduce common helpers for these level width/height/pitch calculations in shader_runner.h.
Fixed in v2.
(Incidentally, I have a slight preference for "¶ms->data[buffer_offset]" over "params->data + buffer_offset", but I don't particularly feel like imposing that.)
I don't care personally, so I changed it in v2.