summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r600/r600_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/r600/r600_context.c')
-rw-r--r--src/mesa/drivers/dri/r600/r600_context.c54
1 files changed, 49 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c
index dbd233729c..ca0a670f3c 100644
--- a/src/mesa/drivers/dri/r600/r600_context.c
+++ b/src/mesa/drivers/dri/r600/r600_context.c
@@ -72,7 +72,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "vblank.h"
#include "utils.h"
-#include "xmlpool.h" /* for symbolic values of enum-type options */
+#include "xmlpool.h" /* for symbolic values of enum-type options */
+
+//#define R600_ENABLE_GLSL_TEST 1
#define need_GL_VERSION_2_0
#define need_GL_ARB_occlusion_query
@@ -154,8 +156,12 @@ static const struct dri_extension mm_extensions[] = {
* The GL 2.0 functions are needed to make display lists work with
* functions added by GL_ATI_separate_stencil.
*/
-static const struct dri_extension gl_20_extension[] = {
- {"GL_VERSION_2_0", GL_VERSION_2_0_functions },
+static const struct dri_extension gl_20_extension[] = {
+#ifdef R600_ENABLE_GLSL_TEST
+ {"GL_ARB_shading_language_100", GL_VERSION_2_0_functions },
+#else
+ {"GL_VERSION_2_0", GL_VERSION_2_0_functions },
+#endif /* R600_ENABLE_GLSL_TEST */
};
static const struct tnl_pipeline_stage *r600_pipeline[] = {
@@ -306,7 +312,28 @@ static void r600InitGLExtensions(GLcontext *ctx)
driInitExtensions(ctx, card_extensions, GL_TRUE);
if (r600->radeon.radeonScreen->kernel_mm)
- driInitExtensions(ctx, mm_extensions, GL_FALSE);
+ driInitExtensions(ctx, mm_extensions, GL_FALSE);
+
+#ifdef R600_ENABLE_GLSL_TEST
+ driInitExtensions(ctx, gl_20_extension, GL_TRUE);
+ //_mesa_enable_2_0_extensions(ctx);
+ //1.5
+ ctx->Extensions.ARB_occlusion_query = GL_TRUE;
+ ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;
+ ctx->Extensions.EXT_shadow_funcs = GL_TRUE;
+ //2.0
+ ctx->Extensions.ARB_draw_buffers = GL_TRUE;
+ ctx->Extensions.ARB_point_sprite = GL_TRUE;
+ ctx->Extensions.ARB_shader_objects = GL_TRUE;
+ ctx->Extensions.ARB_vertex_shader = GL_TRUE;
+ ctx->Extensions.ARB_fragment_shader = GL_TRUE;
+ ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE;
+ ctx->Extensions.EXT_blend_equation_separate = GL_TRUE;
+ ctx->Extensions.ATI_separate_stencil = GL_TRUE;
+
+ /* glsl compiler has problem if this is not GL_TRUE */
+ ctx->Shader.EmitCondCodes = GL_TRUE;
+#endif /* R600_ENABLE_GLSL_TEST */
if (driQueryOptionb
(&r600->radeon.optionCache, "disable_stencil_two_side"))
@@ -341,7 +368,24 @@ GLboolean r600CreateContext(const __GLcontextModes * glVisual,
assert(glVisual);
assert(driContextPriv);
- assert(screen);
+ assert(screen);
+
+ //richard test
+ FILE *pFile = NULL;
+ unsigned long ulByteToWrite = 0;
+ char szStr[1024];
+
+ pFile = fopen("//home//richard//rtp-log//func_call.log", "a+");
+ if(NULL != pFile)
+ {
+ sprintf(szStr, "r600CreateContext \r\n");
+ ulByteToWrite = strlen(szStr);
+ fwrite(szStr, 1, ulByteToWrite, pFile);
+
+ fclose(pFile);
+ pFile = NULL;
+ }
+ //-------------
/* Allocate the R600 context */
r600 = (context_t*) CALLOC(sizeof(*r600));