[Mesa-dev] [PATCH] mesa: fix OES_texture_float texture render target behavior
Ian Romanick
idr at freedesktop.org
Thu Feb 12 13:49:02 PST 2015
On 02/12/2015 01:47 PM, Ian Romanick wrote:
> On 02/12/2015 04:33 AM, Tapani Pälli wrote:
>> Current implementation allowed usage of unsized type texture GL_FLOAT
>> and GL_HALF_FLOAT as a render target as this was 'expected behavior' by
>> WEBGL_oes_texture_float and is also allowed by the oes-texture-float
>> WebGL test. However this broke some ES3 conformance tests that do not
>> accept such behavior. Patch sets such an fbo incomplete as expected by
>> the ES3 conformance tests. Textures with sized types like RGBA32F will
>> still continue to work as render targets.
>
> This looks right, but it's a shame that we lose some functionality. It
> doesn't seem like adding GL_EXT_color_buffer(_half)_float should be too
> much work... quick follow-up?
>
> One tiny nit below. With that fixed,
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
And please add
Cc: "10.5" <mesa-stable at lists.freedesktop.org>
>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88905
>> ---
>> src/mesa/main/fbobject.c | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
>> index dae9d4e..fee7342 100644
>> --- a/src/mesa/main/fbobject.c
>> +++ b/src/mesa/main/fbobject.c
>> @@ -781,6 +781,17 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,
>> att->Complete = GL_FALSE;
>> return;
>> }
>
> Blank line here.
>
>> + /* OES_texture_float allows creation and use of floating point
>> + * textures with GL_FLOAT, GL_HALF_FLOAT but it does not allow
>> + * these textures to be used as a render target, this is done via
>> + * GL_EXT_color_buffer(_half)_float with set of new sized types.
>> + */
>> + if (_mesa_is_gles(ctx) && (texImage->TexObject->_IsFloat ||
>> + texImage->TexObject->_IsHalfFloat)) {
>> + att_incomplete("bad internal format");
>> + att->Complete = GL_FALSE;
>> + return;
>> + }
>> }
>> else if (format == GL_DEPTH) {
>> if (baseFormat == GL_DEPTH_COMPONENT) {
>>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list