summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
Commit message (Collapse)AuthorAgeFilesLines
* mesa syncobj: don't store a pointer to the set_entryJordan Justen2012-12-102-5/+10
| | | | | | | | | | | | The set_entry pointer can become invalid if the set table is re-hashed. This likely will fix https://bugs.freedesktop.org/show_bug.cgi?id=58012 (Regression since 56e95d3c) Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Move declaration before statement.José Fonseca2012-12-081-1/+2
| | | | For MSVC's sake.
* mesa: Add decoding functions for GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2Anuj Phogat2012-12-074-3/+89
| | | | | | | | Data in GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 format is decoded and stored in MESA_FORMAT_SARGB. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2Anuj Phogat2012-12-074-24/+170
| | | | | | | | Data in GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 format is decoded and stored in MESA_FORMAT_RGBA8888_REV. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_SIGNED_RG11_EACAnuj Phogat2012-12-074-2/+97
| | | | | | | | Data in GL_COMPRESSED_SIGNED_RG11_EAC format is decoded and stored in MESA_FORMAT_SIGNED_GR1616. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_SIGNED_R11_EACAnuj Phogat2012-12-074-2/+125
| | | | | | | | | | | | | | | | | | | | | | | | | Data in GL_COMPRESSED_SIGNED_R11_EAC format is decoded and stored in MESA_FORMAT_SIGNED_R16. v2: 16 bit signed data is converted to 16 bit unsigned data by adding 2 ^ 15 and stored in an unsigned texture format. v3: 1. Handle a corner case when base code word value is -128. As per OpenGL ES 3.0 specification -128 is not an allowed value and should be truncated to -127. 2. Converting a decoded 16 bit signed data to 16 bit unsigned data by adding 2 ^ 15 gives us an output which matches the decompressed image (.ppm) generated by ericsson's etcpack tool. ericsson is also doing this conversion in their tool because .ppm image files don't support signed data. But gles 3.0 specification doesn't suggest this conversion. We need to keep the decoded data in signed format. Both signed format tests in gles3 conformance pass with these changes. Signed-off-by: Anuj Phogat <[email protected]> Tested-by: Matt Turner <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_RG11_EACAnuj Phogat2012-12-074-3/+97
| | | | | | | | Data in GL_COMPRESSED_RG11_EAC format is decoded and stored in MESA_FORMAT_RG1616. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_R11_EACAnuj Phogat2012-12-074-5/+127
| | | | | | | | Data in GL_COMPRESSED_R11_EAC format is decoded and stored in MESA_FORMAT_R16. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EACAnuj Phogat2012-12-074-2/+90
| | | | | | | | Data in GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC format is decoded and stored in MESA_FORMAT_SARGB8. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_RGBA8_ETC2_EACAnuj Phogat2012-12-074-6/+150
| | | | | | | | Data in GL_COMPRESSED_RGBA8_ETC2_EAC format is decoded and stored in MESA_FORMAT_RGBA8888_REV. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_SRGB8_ETC2Anuj Phogat2012-12-074-6/+88
| | | | | | | | Data in GL_COMPRESSED_SRGB8_ETC2 format is decoded and stored in MESA_FORMAT_SARGB8. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add decoding functions for GL_COMPRESSED_RGB8_ETC2Anuj Phogat2012-12-074-12/+468
| | | | | | | | | Data in GL_COMPRESSED_RGB8_ETC2 format is decoded and stored in MESA_FORMAT_RGBX8888_REV. v2: Use CLAMP macro and stdbool.h Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Make nonlinear_to_linear() function available outside fileAnuj Phogat2012-12-073-52/+29
| | | | | | | | | This patch changes nonlinear_to_linear() function to non static inline and makes it available outside format_unpack.c. Also, removes the duplicate copies in other files. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add new MESA_FORMATs for ETC2 compressed texturesAnuj Phogat2012-12-078-1/+408
| | | | | | | | | | | | | | | | | | | | | | | | | | | It is required by OpenGL ES 3.0 to support ETC2 textures. This patch adds new MESA_FORMATs for following etc2 texture formats: GL_COMPRESSED_RGB8_ETC2 GL_COMPRESSED_SRGB8_ETC2 GL_COMPRESSED_RGBA8_ETC2_EAC GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC GL_COMPRESSED_R11_EAC GL_COMPRESSED_RG11_EAC GL_COMPRESSED_SIGNED_R11_EAC GL_COMPRESSED_SIGNED_RG11_EAC MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1 MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1 Above formats are currently available in only gles 3.0. v2: Add entries in texfetch_funcs[] array. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]> v3 (Paul Berry <[email protected]>): comment out symbols that are not implemented yet, so that this commit compiles on its own; future commits will uncomment the symbols as they become available.
* Set es_version to false when using FF fragment shading in meta opsPaul Berry2012-12-071-0/+1
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Ignore size and offset parameters for BindBufferRange when buffer is 0Matt Turner2012-12-071-10/+12
| | | | | | | | | | | | The ES 3 conformance suite unbinds buffers (by binding buffer 0) and passes zero for the size and offset, which the spec explicitly disallows. Otherwise, this seems like a reasonable thing to do. Khronos will be changing the spec to allow this (bug 9765). Fixes es3conform's transform_feedback_init_defaults test. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* glsl: Record in gl_shader_program whether the program uses GLSL ES.Paul Berry2012-12-061-0/+1
| | | | | | | | | | | | Previously we recorded just the GLSL version (or the max version, if GLSL 1.10 and GLSL 1.20 programs were linked together). [v2, idr]: s/IsEs(Shader|Prog)/IsES/ Suggested by Ken and Eric. Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Acked-by: Carl Worth <[email protected]>
* glsl: Record in gl_shader whether the shader uses GLSL ES.Paul Berry2012-12-061-0/+1
| | | | | | | | | | | | | | | | | | Previously we recorded just the GLSL version, with the knowledge that 100 means GLSL 1.00 ES. With the advent of GLSL 3.00 ES, this is going to get more complex, and eventually will probably become ambiguous (GLSL 4.00 already exists, and GLSL 4.00 ES is likely to be created some day). To reduce confusion, this patch simply records whether the shader is GLSL ES as an explicit boolean. [v2, idr]: s/IsEs(Shader|Prog)/IsES/ Suggested by Ken and Eric. Reviewed-by: Ian Romanick <[email protected]> [v1] Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Acked-by: Carl Worth <[email protected]>
* mesa: Add ARB_ES3_compatibility flag.Paul Berry2012-12-062-0/+2
| | | | | | | | | | | | | Adding this now makes it easier to develop and test GLES3 features, since we can do initial development and testing using desktop GL. Later GLSL compiler patches check for either ctx->Extensions.ARB_ES3_compatibility or _mesa_is_gles3 to allow certain features (i.e., "#version 300 es"). [v2, idr]: Just edits to the commit message. Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Acked-by: Carl Worth <[email protected]>
* mesa: use rand() instead of random()Brian Paul2012-12-061-1/+1
| | | | | | | As Vinson Lee did in commit bb284669f85a32900bfec648d68ba4c4300772f4 in hash_table.c Signed-off-by: Brian Paul <[email protected]>
* mesa: validate that sync objects were created by mesaJordan Justen2012-12-063-15/+26
| | | | | | | | | | | | | | Previously, the user could send in a pointer that was not created by mesa. When we dereferenced that pointer, there would be an exception. Now we keep a set of pointers and verify that the pointer exists in that set before dereferencing it. Note: This fixes several crashing gles3conform tests. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* main/syncobj: return GL_INVALID_VALUE for invalid sync objectsJordan Justen2012-12-061-4/+4
| | | | | | | | Note: The GL/GLES3 web man pages don't seem to properly document glWaitSync's error when the sync object is invalid. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: add set support (stores a set of pointers)Eric Anholt2012-12-062-0/+442
| | | | | | | | | From: git://people.freedesktop.org/~anholt/hash_table Reviewed-by: Jordan Justen <[email protected]> [[email protected]: minor rework for mesa] Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: expose ARB_texture_cube_map_array in core contexts as wellChris Forbes2012-12-051-1/+1
| | | | | | | | Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: Only require Gen'ed name for glBind{Framebuffer,Renderbuffer} on desktopIan Romanick2012-12-031-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Desktop OpenGL implementations that support either GL_ARB_framebuffer_object or OpenGL 3.0 must require names from glGenFramebuffers for glBindFramebuffer. We have enforced this rule for quite some time. However, OpenGL ES 1.0, 2.0, and 3.0 implementations are required to allow user-defined names (e.g., not from glGenFramebuffers{OES,}). The Intel drivers have hacked around this by not enabling GL_ARB_framebuffer_object in an ES context. Instead, just pick the correct behavior in _mesa_BindFramebuffer based on the context API. Chad pointed out in a review e-mail: "I'd like to point out, though, that glBindFramebufferEXT and glBindRenderbufferEXT are still broken on desktop GL because they don't accept user-genned names. But that fix belongs to a different series." Currently glBindFramebufferEXT is an alias for glBindFramebuffer. Unalising two functions presents some difficulty, so we'll have to revisit this eventually. v2: Perform same check in _mesa_BindRenderbuffer too. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> [v1]
* mesa: fix uint64 printing in syncobj.cBrian Paul2012-12-031-1/+3
| | | | | | | | | To silence printf format warnings. v2: insert "0x" prefix Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* mesa: Disable GL_NV_primitive_restart extension in core contexts.Kenneth Graunke2012-12-031-1/+1
| | | | | | | | | | | | | | | | The NV formulation of primitive restart is turned on/off with glEnableClientState/glDisableClientState. These two functions don't exist in core contexts, which mean that GL_NV_primitive_restart is essentially useless...even broken. However, leaving it on causes oglconform's primitive-restart-nv tests to run in OpenGL 3.1 contexts, which results in them all failing. This patch causes 29 subtests to go from "fail" to "not run". NOTE: This is a candidate for stable branches. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove warning message in _mesa_reference_renderbuffer_()Brian Paul2012-12-031-4/+1
| | | | | | | | | | | | We were warning when there was no current context and we're about to delete a renderbuffer, but that happens fairly often and isn't really a problem. Fixes http://bugs.freedesktop.org/show_bug.cgi?id=57754 Note: This is a candidate for the stable branches. Tested-by: Ian Romanick <[email protected]>
* mesa: pass context parameter to gl_renderbuffer::Delete()Brian Paul2012-11-305-6/+11
| | | | | | | | | | We sometimes need a rendering context when deleting renderbuffers. Pass it explicitly instead of trying to grab a current context (which might be NULL). The next patch will make use of this. Note: this is a candidate for the stable branches. Reviewed-by: Jose Fonseca <[email protected]>
* mesa: Fix GL_LUMINANCE handling for textures in glGetTexImageAnuj Phogat2012-11-291-11/+27
| | | | | | | | | | | | | | | | | | | | | | | | | We need to rebase colors (ex: set G=B=0) when getting GL_LUMINANCE textures in following cases: 1. If the luminance texture is actually stored as rgba 2. If getting a luminance texture, but returning rgba 3. If getting an rgba texture, but returning luminance A similar fix was pushed by Brian Paul for uncompressed textures in commit: f5d0ced. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=47220 Observed no regressions in piglit and ogles2conform due to this fix. This patch will cause failures in intel oglconform pxconv-gettex, pxstore-gettex and pxtrans-gettex test cases. The cause of failures is a bug in test cases. Expected luminance value is calculted incorrectly in test cases: L = R+G+B. V2: Set G = 0 when getting a RG texture but returning luminance. Note: This is a candidate for stable branches. Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: Rename API_OPENGL to API_OPENGL_COMPAT.Paul Berry2012-11-2926-213/+213
| | | | | | | | | | This should help avoid confusion now that we're using the gl_api enum to distinguishing between core and compatibility API's. The corresponding enum value for core API's is API_OPENGL_CORE. Acked-by: Eric Anholt <[email protected]> Acked-by: Matt Turner <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
* mesa: move some helper functions from fboobject.c to glformats.cMarek Olšák2012-11-293-119/+127
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: fix BlitFramebuffer between linear and sRGB formatsMarek Olšák2012-11-281-3/+39
| | | | | | NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]>
* mesa: remove '(void) k' linesBrian Paul2012-11-271-4/+0
| | | | Serves no purpose as the k parameter is used later in the code.
* mesa: Set transform feedback's default buffer mode to INTERLEAVED_ATTRIBSMatt Turner2012-11-271-0/+2
| | | | | | | Fixes part of es3conform's transform_feedback_init_defaults test. NOTE: This is a candidate for the stable branch. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Return 0 for XFB_VARYING_MAX_LENGTH if no varyingsMatt Turner2012-11-271-21/+15
| | | | | | | | | v2: Perform this count the same way as elsewhere in this file, per Brian Paul's review. Fixes part of es3conform's transform_feedback_init_defaults test. NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]>
* mesa: Use correct glGetTransformFeedbackVarying name in error msgMatt Turner2012-11-261-2/+2
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: Mark GetBufferParameteri64v as implemented.Kenneth Graunke2012-11-191-2/+1
| | | | | | | | | | | | | | | | | | Apparently this was accidentally marked as unimplemented, and thus not put in the dispatch table. Fixes 7 es3conform tests: - copy_buffer_parameters - copy_buffer_data - copy_buffer_usage - pixel_buffer_object_bind - pixel_buffer_object_parameteriv - pixel_buffer_object_texture_read - pixel_buffer_object_usage v2: Also update the DispatchSanity test for this change. Reviewed-by: Matt Turner <[email protected]>
* mesa: Require gen'd names in glBeginQuery on ES 3.0.Kenneth Graunke2012-11-191-1/+1
| | | | | | | | | | | Only legacy OpenGL allows the use of non-gen'd names. Core profiles and ES 3 both require the use of glGenQueries(). Note that BeginQuery doesn't exist in ES 1 or ES 2. Fixes es3conform's occlusion_query_invalid_beginquery test. Reviewed-and-tested-by: Matt Turner <[email protected]>
* mesa: Support EXT_framebuffer_blit targets in ES 3.0 as well.Kenneth Graunke2012-11-191-4/+5
| | | | | | | | | GL_READ_FRAMEBUFFER and GL_DRAW_FRAMEBUFFER are valid targets in ES 3. Fixes 23 es3conform framebuffer_blit tests. Two more go from fail to crash, but that appears to be because they actually run now. Reviewed-and-tested-by: Matt Turner <[email protected]>
* mesa: Fix error code for glTexParameteri of TEXTURE_MAX_LEVEL.Kenneth Graunke2012-11-191-1/+1
| | | | | | | | | | | | Calling glTexParameteri() with pname GL_TEXTURE_MAX_LEVEL and either a target of GL_TEXTURE_RECTANGLE or a negative value previously generated GL_INVALID_OPERATION. However, GL_INVALID_VALUE seems more appropriate. Fixes oglconform's api-error/negative.glTexParameter and es3conform's sgis_texture_lod_basic_error. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-and-tested-by: Matt Turner <[email protected]>
* mesa: Fix segfault on reading from a missing color read buffer.Eric Anholt2012-11-171-11/+11
| | | | | | | | | | | | | | The diff looks funny, but it's moving the integer vs non-integer check below the _mesa_source_buffer_exists() check that ensures _ColorReadBuffer is non-null, so we get a GL_INVALID_OPERATION instead of a segfault. This looks like it had regressed in the _mesa_error_check_format_and_type() changes, which removed the first of the two duplicated checks for the source buffer. Fixes segfault in the new piglit ARB_framebuffer_object/negative-readpixels-no-rb. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45877 NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]>
* mesa: Also handle GL_TEXTURE_EXTENRAL_OES in max num levels.Eric Anholt2012-11-171-0/+1
| | | | Reviewed-by: Chad Versace <[email protected]>
* Remove OpenVMS supportMatt Turner2012-11-166-438/+3
| | | | | | | | | | Not maintained since 2008. Doubtful that it's worked in quite a while. Also see commit 32ac8cb05 which removed VMS stuff from Makefile in 2009. Cc: Jouk Jansen <[email protected]> Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Andreas Boll <[email protected]>
* mesa: return INVALID_VALUE from WaitSync if timeout != GL_TIMEOUT_IGNOREDMatt Turner2012-11-151-5/+2
| | | | | | | This was added in version 22 of the GL_ARB_sync spec. Fixes gles3conform's sync_error_waitsync_timeout test. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: return INVALID_VALUE from WaitSync if flags != 0Matt Turner2012-11-151-1/+1
| | | | | | Fixes gles3conform's sync_error_waitsync_flags test. Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: return INVALID_VALUE from ClientWaitSync if flags contains an ↵Matt Turner2012-11-151-1/+1
| | | | | | | | unsupported flag Fixes gles3conform's sync_error_clientwaitsync_flags test. Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: return INVALID_VALUE from VertexAttribDivisor if index out of rangeMatt Turner2012-11-151-1/+1
| | | | | | | | | All the other range checks on index already return the proper error, INVALID_VALUE. Fixes gles3conform's instanced_arrays_invalid test. Reviewed-by: Paul Berry <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Add .gitignore for hashtable collision unit test.Paul Berry2012-11-141-0/+1
| | | | | This test was introduced in commit 35fd61bd99c15c2e13d3945b41c4db7df6e64319.
* mesa: Include compiler.h in hash_table.h.Vinson Lee2012-11-131-2/+4
| | | | | | | Include the header for the inline symbol. MSVC does not have the inline keyword for C. Signed-off-by: Vinson Lee <[email protected]>