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

Reply via email to