On 02/25/2016 08:20 AM, Miklós Máté wrote:
On 02/25/2016 02:37 AM, Brian Paul wrote:
+ if (texinst->Opcode == ATI_FRAGMENT_SHADER_SAMPLE_OP) {
+ /* use the current texture target for the sample operation
+ * note: this implementation doesn't support re-using an ATI_fs
+ * with different texture targets
+ */
+ gl_texture_index index =
_mesa_get_texture_target_index(t->ctx, r);
+ unsigned target = translate_texture_target(index);
So, the result of compiling the shader happens to depend upon the
currently active texture for unit 'r'? That seems funny/fragile.
I've never really looked too closely at ATI_fragment_shader so I don't
know.
Yes, the shader code doesn't supply the texture target, it has to be
deduced in the draw call, and a separate variant has to be created if
the shader is re-used with different texture targets. AFAICT the r200
driver avoids this by translating the shader on every draw call.
That would be good info to have in a comment somewhere, if it's not
already stated somewhere else.
-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev