/* Sets the sensor related settings in CCDC registers */ int camispcfg_set_ccdc(unsigned char addr, unsigned int val) { unsigned int old_val; isp_get(); switch(addr) { case GET_ADDRESS(CAM_CCDC_SYNCMODE): { old_val = omap_readl(ISPCCDC_SYN_MODE); old_val &= ~CAM_CCDC_SYNCMODE_MASK; val &= CAM_CCDC_SYNCMODE_MASK; omap_writel(old_val | val,ISPCCDC_SYN_MODE); printk("oldval = 0x%x, val = 0x%x", old_val, val); printk(" ccdc sync mode val = 0x%x", omap_readl(ISPCCDC_SYN_MODE)); } break; default: break; }; isp_put(); return 0; }
/* Sets the sensor related settings in ISPCTRL registers */ int camispcfg_set_ispif(unsigned char addr, unsigned int val) { unsigned int old_val; isp_get(); switch(addr) { case GET_ADDRESS(CAM_ISPIF_CTRL): { old_val = omap_readl(ISP_CTRL); old_val &= ~CAM_ISPIF_CTRL_MASK; val &= CAM_ISPIF_CTRL_MASK; omap_writel(old_val | val,ISP_CTRL); printk("oldval = 0x%x, val = 0x%x", old_val, val); printk(" ispctrl val = 0x%x", omap_readl(ISP_CTRL)); } break; default: break; }; isp_put(); return 0; }
int interp_control() { uint32_t opcode = GET_OPCODE(if_id.inst); uint32_t address; switch (opcode) { case OPCODE_R : id_ex.reg_write = true; id_ex.reg_dst = GET_RD(if_id.inst); id_ex.rt = GET_RT(if_id.inst); id_ex.rs_value = regs[GET_RS(if_id.inst)]; id_ex.rt_value = regs[id_ex.rt]; id_ex.funct = GET_FUNCT(if_id.inst); id_ex.shamt = GET_SHAMT(if_id.inst); if (id_ex.funct == FUNCT_JR) { id_ex.jump = true; id_ex.jump_target = id_ex.rs_value; } break; case OPCODE_BEQ : id_ex.branch = true; id_ex.beq = true; id_ex.rt = GET_RT(if_id.inst); id_ex.rs_value = regs[GET_RS(if_id.inst)]; id_ex.rt_value = regs[id_ex.rt]; id_ex.sign_ext_imm = SIGN_EXTEND(GET_IMM(if_id.inst)); // INSTRUKTOR 0: no reason to updates fields that you dont use id_ex.funct = FUNCT_SUB; break; case OPCODE_BNE : id_ex.branch = true; id_ex.beq = false; id_ex.rt = GET_RT(if_id.inst); id_ex.rs_value = regs[GET_RS(if_id.inst)]; id_ex.rt_value = regs[id_ex.rt]; id_ex.sign_ext_imm = SIGN_EXTEND(GET_IMM(if_id.inst)); id_ex.funct = FUNCT_SUB; break; case OPCODE_LW : id_ex.mem_read = true; id_ex.reg_write = true; id_ex.alu_src = true; id_ex.mem_to_reg = true; id_ex.reg_dst = GET_RT(if_id.inst); id_ex.rt = GET_RT(if_id.inst); id_ex.rs_value = regs[GET_RS(if_id.inst)]; id_ex.rt_value = regs[id_ex.rt]; id_ex.sign_ext_imm = SIGN_EXTEND(GET_IMM(if_id.inst)); id_ex.funct = FUNCT_ADD; break; case OPCODE_SW : id_ex.mem_write = true; id_ex.alu_src = true; id_ex.rt = GET_RT(if_id.inst); id_ex.rs_value = regs[GET_RS(if_id.inst)]; id_ex.rt_value = regs[id_ex.rt]; id_ex.sign_ext_imm = SIGN_EXTEND(GET_IMM(if_id.inst)); id_ex.funct = FUNCT_ADD; break; case OPCODE_J : id_ex.jump = true; address = GET_ADDRESS(if_id.inst); id_ex.jump_target = (if_id.next_pc & MS_4B) | (address << 2); break; case OPCODE_JAL : id_ex.reg_write = true; id_ex.jump = true; address = GET_ADDRESS(if_id.inst); id_ex.jump_target = (if_id.next_pc & MS_4B) | (address << 2); id_ex.rs_value = 0; id_ex.rt_value = if_id.next_pc; id_ex.reg_dst = 31; id_ex.funct = FUNCT_ADD; break; // INSTRUKTOR -2: Make cases for all I-type and J-type instructions default: printf("ERROR: Unknown opcode in interp_control()\n"); return ERROR_UNKNOWN_OPCODE; } return 0; }
void qGLExtensions::QueryFeatures(void* dc) { if( GLVersion > 0 ) return; const char* glversion = (const char*)glGetString(GL_VERSION); int major, minor; bool isgles = false; if( 0 == Q_SSCANF(glversion, "%1d.%2d %*s", &major, &minor) ) { Q_SSCANF(glversion, "OpenGL ES %1d %*s", &major); minor = 0; isgles = true; } GLVersion = MAKE_VERSION(major, minor); #ifdef _Q_WINDOWS bool coreprofile = (GLVersion >= GL_3_2); if( coreprofile ) glGetStringi = (GLGETSTRINGIPROC)wglGetProcAddress("glGetStringi"); if( wglGetExtensionsString && dc ) { HDC hdc = (HDC)dc; WGL_EXT_swap_control = wIsSupported("WGL_EXT_swap_control", hdc); WGL_ARB_pixel_format = wIsSupported("WGL_ARB_pixel_format", hdc); WGL_ARB_create_context = wIsSupported("WGL_ARB_create_context", hdc); WGL_ARB_create_context_profile = wIsSupported("WGL_ARB_create_context_profile", hdc); } if( WGL_ARB_pixel_format ) { wglGetPixelFormatAttribiv = (WGLGETPIXELFORMATATTRIBIVARBPROC)wglGetProcAddress("wglGetPixelFormatAttribivARB"); wglGetPixelFormatAttribfv = (WGLGETPIXELFORMATATTRIBFVARBPROC)wglGetProcAddress("wglGetPixelFormatAttribfvARB"); wglChoosePixelFormat = (WGLCHOOSEPIXELFORMATARBPROC)wglGetProcAddress("wglChoosePixelFormatARB"); } if( WGL_ARB_create_context && WGL_ARB_create_context_profile ) wglCreateContextAttribs = (WGLCREATECONTEXTATTRIBSARBPROC)wglGetProcAddress("wglCreateContextAttribsARB"); if( WGL_EXT_swap_control ) wglSwapInterval = (PFNWGLSWAPINTERVALFARPROC)wglGetProcAddress("wglSwapIntervalEXT"); #endif #ifndef _Q_TEST_LOW_CONFIG if( isgles ) { ARB_vertex_buffer_object = true; ARB_vertex_program = true; ARB_fragment_program = true; ARB_shader_objects = true; EXT_framebuffer_object = true; EXT_texture_cube_map = true; IMG_texture_compression_pvrtc = IsSupported("GL_IMG_texture_compression_pvrtc"); IMG_user_clip_plane = IsSupported("GL_IMG_user_clip_plane"); } else if( coreprofile ) { ARB_vertex_buffer_object = true; ARB_vertex_program = true; ARB_fragment_program = true; ARB_shader_objects = true; ARB_texture_float = true; ARB_texture_non_power_of_two = true; ARB_texture_rg = true; ARB_texture_compression = true; ARB_draw_buffers = true; ARB_vertex_array_object = true; EXT_framebuffer_object = true; EXT_texture_cube_map = true; EXT_framebuffer_sRGB = true; EXT_texture_sRGB = true; EXT_texture_compression_s3tc = true; EXT_framebuffer_multisample = true; EXT_framebuffer_blit = true; EXT_packed_depth_stencil = true; ARB_debug_output = IsSupported("GL_ARB_debug_output"); ARB_geometry_shader4 = IsSupported("GL_ARB_geometry_shader4"); ARB_tessellation_shader = IsSupported("GL_ARB_tessellation_shader"); ARB_compute_shader = IsSupported("GL_ARB_compute_shader"); ARB_shader_image_load_store = IsSupported("GL_ARB_shader_image_load_store"); ARB_shader_storage_buffer_object = IsSupported("GL_ARB_shader_storage_buffer_object"); ARB_shader_atomic_counters = IsSupported("GL_ARB_shader_atomic_counters"); } else { ARB_vertex_buffer_object = IsSupported("GL_ARB_vertex_buffer_object"); ARB_vertex_program = IsSupported("GL_ARB_vertex_program"); ARB_fragment_program = IsSupported("GL_ARB_fragment_program"); ARB_shader_objects = IsSupported("GL_ARB_shader_objects"); ARB_texture_float = IsSupported("GL_ARB_texture_float"); ARB_texture_non_power_of_two = IsSupported("GL_ARB_texture_non_power_of_two"); ARB_texture_rg = IsSupported("GL_ARB_texture_rg"); ARB_texture_compression = IsSupported("GL_ARB_texture_compression"); ARB_draw_buffers = IsSupported("GL_ARB_draw_buffers"); ARB_vertex_array_object = IsSupported("GL_ARB_vertex_array_object"); EXT_framebuffer_object = IsSupported("GL_EXT_framebuffer_object"); EXT_framebuffer_sRGB = IsSupported("GL_EXT_framebuffer_sRGB"); EXT_framebuffer_multisample = IsSupported("GL_EXT_framebuffer_multisample"); EXT_framebuffer_blit = IsSupported("GL_EXT_framebuffer_blit"); EXT_texture_sRGB = IsSupported("GL_EXT_texture_sRGB"); EXT_texture_compression_s3tc = IsSupported("GL_EXT_texture_compression_s3tc"); EXT_texture_cube_map = IsSupported("GL_EXT_texture_cube_map"); EXT_packed_depth_stencil = IsSupported("GL_EXT_packed_depth_stencil"); if( !EXT_framebuffer_sRGB ) EXT_framebuffer_sRGB = IsSupported("GL_ARB_framebuffer_sRGB"); if( !EXT_texture_cube_map ) EXT_texture_cube_map = IsSupported("GL_ARB_texture_cube_map"); if( !ARB_texture_float ) ARB_texture_float = IsSupported("GL_APPLE_float_pixels"); } #endif #if defined(_Q_WINDOWS) GET_ADDRESS(glActiveTexture, PFNGLACTIVETEXTUREARBPROC, "glActiveTexture"); GET_ADDRESS(glClientActiveTexture, PFNGLCLIENTACTIVETEXTUREARBPROC, "glClientActiveTexture"); GET_ADDRESS(glGenerateMipmap, PFNGLGENERATEMIPMAPEXTPROC, "glGenerateMipmapEXT"); GET_ADDRESS(glMapBuffer, PFNGLMAPBUFFERARBPROC, "glMapBufferARB"); GET_ADDRESS(glUnmapBuffer, PFNGLUNMAPBUFFERARBPROC, "glUnmapBufferARB"); if( ARB_texture_compression ) { GET_ADDRESS(glCompressedTexImage2D, PFNGLCOMPRESSEDTEXIMAGE2DPROC, "glCompressedTexImage2D"); GET_ADDRESS(glCompressedTexImage1D, PFNGLCOMPRESSEDTEXIMAGE1DPROC, "glCompressedTexImage1D"); } if( ARB_draw_buffers ) GET_ADDRESS(glDrawBuffers, PFNGLDRAWBUFFERSARBPROC, "glDrawBuffers"); if( ARB_vertex_array_object ) { GET_ADDRESS(glGenVertexArrays, PFNGLGENVERTEXARRAYSPROC, "glGenVertexArrays"); GET_ADDRESS(glBindVertexArray, PFNGLBINDVERTEXARRAYPROC, "glBindVertexArray"); GET_ADDRESS(glDeleteVertexArrays, PFNGLDELETEVERTEXARRAYSPROC, "glDeleteVertexArrays"); } if( ARB_vertex_buffer_object ) { GET_ADDRESS(glGetBufferSubData, PFNGLGETBUFFERSUBDATAARBPROC, "glGetBufferSubData"); GET_ADDRESS(glDrawRangeElements, PFNGLDRAWRANGEELEMENTSPROC, "glDrawRangeElements"); GET_ADDRESS(glDeleteBuffers, PFNGLDELETEBUFFERSARBPROC, "glDeleteBuffersARB"); GET_ADDRESS(glBindBuffer, PFNGLBINDBUFFERARBPROC, "glBindBufferARB"); GET_ADDRESS(glGenBuffers, PFNGLGENBUFFERSARBPROC, "glGenBuffersARB"); GET_ADDRESS(glBufferData, PFNGLBUFFERDATAARBPROC, "glBufferDataARB"); GET_ADDRESS(glBufferSubData, PFNGLBUFFERSUBDATAARBPROC, "glBufferSubDataARB"); } if( EXT_framebuffer_object ) { GET_ADDRESS(glGenFramebuffers, PFNGLGENFRAMEBUFFERSEXTPROC, "glGenFramebuffersEXT"); GET_ADDRESS(glGenRenderbuffers, PFNGLGENRENDERBUFFERSEXTPROC, "glGenRenderbuffersEXT"); GET_ADDRESS(glBindFramebuffer, PFNGLBINDFRAMEBUFFEREXTPROC, "glBindFramebufferEXT"); GET_ADDRESS(glFramebufferTexture2D, PFNGLFRAMEBUFFERTEXTURE2DEXTPROC, "glFramebufferTexture2DEXT"); GET_ADDRESS(glBindRenderbuffer, PFNGLBINDRENDERBUFFEREXTPROC, "glBindRenderbufferEXT"); GET_ADDRESS(glRenderbufferStorage, PFNGLRENDERBUFFERSTORAGEEXTPROC, "glRenderbufferStorageEXT"); GET_ADDRESS(glFramebufferRenderbuffer, PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC, "glFramebufferRenderbufferEXT"); GET_ADDRESS(glCheckFramebufferStatus, PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, "glCheckFramebufferStatusEXT"); GET_ADDRESS(glDeleteFramebuffers, PFNGLDELETEFRAMEBUFFERSEXTPROC, "glDeleteFramebuffersEXT"); GET_ADDRESS(glDeleteRenderbuffers, PFNGLDELETERENDERBUFFERSEXTPROC, "glDeleteRenderbuffersEXT"); } if( EXT_framebuffer_multisample ) GET_ADDRESS(glRenderbufferStorageMultisample, PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, "glRenderbufferStorageMultisampleEXT"); if( EXT_framebuffer_blit ) GET_ADDRESS(glBlitFramebuffer, PFNGLBLITFRAMEBUFFEREXTPROC, "glBlitFramebufferEXT"); if( ARB_shader_objects ) { GET_ADDRESS(glCreateProgram, PFNGLCREATEPROGRAMOBJECTARBPROC, "glCreateProgramObjectARB"); GET_ADDRESS(glCreateShader, PFNGLCREATESHADEROBJECTARBPROC, "glCreateShaderObjectARB"); GET_ADDRESS(glShaderSource, PFNGLSHADERSOURCEARBPROC, "glShaderSourceARB"); GET_ADDRESS(glCompileShader, PFNGLCOMPILESHADERARBPROC, "glCompileShaderARB"); GET_ADDRESS(glAttachShader, PFNGLATTACHOBJECTARBPROC, "glAttachObjectARB"); GET_ADDRESS(glDetachShader, PFNGLDETACHOBJECTARBPROC, "glDetachObjectARB"); GET_ADDRESS(glLinkProgram, PFNGLLINKPROGRAMARBPROC, "glLinkProgramARB"); GET_ADDRESS(glDeleteProgram, PFNGLDELETEOBJECTARBPROC, "glDeleteObjectARB"); GET_ADDRESS(glDeleteShader, PFNGLDELETEOBJECTARBPROC, "glDeleteObjectARB"); GET_ADDRESS(glUseProgram, PFNGLUSEPROGRAMOBJECTARBPROC, "glUseProgramObjectARB"); GET_ADDRESS(glUniformMatrix2fv, PFNGLUNIFORMMATRIX2FVARBPROC, "glUniformMatrix2fvARB"); GET_ADDRESS(glUniformMatrix3fv, PFNGLUNIFORMMATRIX3FVARBPROC, "glUniformMatrix3fvARB"); GET_ADDRESS(glUniformMatrix4fv, PFNGLUNIFORMMATRIX4FVARBPROC, "glUniformMatrix4fvARB"); GET_ADDRESS(glUniform1i, PFNGLUNIFORM1IARBPROC, "glUniform1iARB"); GET_ADDRESS(glUniform1f, PFNGLUNIFORM1FARBPROC, "glUniform1fARB"); GET_ADDRESS(glUniform2f, PFNGLUNIFORM2FARBPROC, "glUniform2fARB"); GET_ADDRESS(glUniform3f, PFNGLUNIFORM3FARBPROC, "glUniform3fARB"); GET_ADDRESS(glUniform4f, PFNGLUNIFORM4FARBPROC, "glUniform4fARB"); GET_ADDRESS(glUniform1fv, PFNGLUNIFORM1FVARBPROC, "glUniform1fvARB"); GET_ADDRESS(glUniform2fv, PFNGLUNIFORM2FVARBPROC, "glUniform2fvARB"); GET_ADDRESS(glUniform3fv, PFNGLUNIFORM3FVARBPROC, "glUniform3fvARB"); GET_ADDRESS(glUniform4fv, PFNGLUNIFORM4FVARBPROC, "glUniform4fvARB"); GET_ADDRESS(glGetProgramiv, PFNGLGETOBJECTPARAMETERIVARBPROC, "glGetObjectParameterivARB"); GET_ADDRESS(glGetShaderiv, PFNGLGETOBJECTPARAMETERIVARBPROC, "glGetObjectParameterivARB"); GET_ADDRESS(glGetActiveUniform, PFNGLGETACTIVEUNIFORMARBPROC, "glGetActiveUniformARB"); GET_ADDRESS(glGetActiveAttrib, PFNGLGETACTIVEATTRIBPROC, "glGetActiveAttribARB"); GET_ADDRESS(glGetAttribLocation, PFNGLGETATTRIBLOCATIONPROC, "glGetAttribLocationARB"); GET_ADDRESS(glGetShaderInfoLog, PFNGLGETINFOLOGARBPROC, "glGetInfoLogARB"); GET_ADDRESS(glGetProgramInfoLog, PFNGLGETINFOLOGARBPROC, "glGetInfoLogARB"); GET_ADDRESS(glGetUniformLocation, PFNGLGETUNIFORMLOCATIONARBPROC, "glGetUniformLocationARB"); GET_ADDRESS(glBindAttribLocation, PFNGLBINDATTRIBLOCATIONARBPROC, "glBindAttribLocationARB"); GET_ADDRESS(glBindFragDataLocation, PFNGLBINDFRAGDATALOCATIONPROC, "glBindFragDataLocation"); GET_ADDRESS(glEnableVertexAttribArray, PFNGLENABLEVERTEXATTRIBARRAYARBPROC, "glEnableVertexAttribArrayARB"); GET_ADDRESS(glDisableVertexAttribArray, PFNGLDISABLEVERTEXATTRIBARRAYARBPROC, "glDisableVertexAttribArrayARB"); GET_ADDRESS(glVertexAttribPointer, PFNGLVERTEXATTRIBPOINTERARBPROC, "glVertexAttribPointerARB"); } // core profile only if( coreprofile ) { GET_ADDRESS(glMapBufferRange, PFNGLMAPBUFFERRANGEPROC, ""); GET_ADDRESS(glGetIntegeri_v, PFNGLGETINTEGERI_VPROC, ""); GET_ADDRESS(glGetProgramBinary, PFNGLGETPROGRAMBINARYPROC, ""); } if( ARB_tessellation_shader ) { GET_ADDRESS(glPatchParameteri, PFNGLPATCHPARAMETERIPROC, ""); GET_ADDRESS(glPatchParameterfv, PFNGLPATCHPARAMETERFVPROC, ""); } if( ARB_compute_shader ) { GET_ADDRESS(glDispatchCompute, PFNGLDISPATCHCOMPUTEPROC, ""); GET_ADDRESS(glDispatchComputeIndirect, PFNGLDISPATCHCOMPUTEINDIRECTPROC, ""); GET_ADDRESS(glMemoryBarrier, PFNGLMEMORYBARRIERPROC, ""); } if( ARB_shader_image_load_store ) { GET_ADDRESS(glBindImageTexture, PFNGLBINDIMAGETEXTUREPROC, ""); } if( ARB_shader_storage_buffer_object ) { GET_ADDRESS(glBindBufferBase, PFNGLBINDBUFFERBASEPROC, ""); } if( ARB_debug_output ) { GET_ADDRESS(glDebugMessageControl, PFNGLDEBUGMESSAGECONTROLPROC, ""); GET_ADDRESS(glDebugMessageCallback, PFNGLDEBUGMESSAGECALLBACKPROC, ""); GET_ADDRESS(glGetDebugMessageLog, PFNGLGETDEBUGMESSAGELOGPROC, ""); } #endif if( ARB_shader_objects ) { const char* glslversion = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION); int major, minor; Q_SSCANF(glslversion, "%1d.%2d %*s", &major, &minor); GLSLVersion = MAKE_VERSION(major, minor); } else GLSLVersion = 0; }