From an user perspective the hardware accelerated version provided the following improvements: Bilinear filtering
Colored lighting
30% framerate increase at a higher resolution
I can't resist but to quote page 191 of "Masters of Doom" relating John Romero discovering colored lighting for the first time:When Romero wandered over to id's booth, [...].He pushed his way through the crowd to see the demo of Quake II. Hisface filled with yellow light as his jaw slackened. Colored lighting! Romerocouldn't believe what he was seeing. The setting was a dungeonlike militarylevel, but when the gamer fired his gun, the yellow blast of the ammunitioncast a corresponding yellow glow as it sailed down the walls. It was subtle,but when Romero saw the dynamic colored lighting, it was a moment justlike that one back at Softdisk when he saw Dangerous Dave in CopyrightInfringement for the first time."Holy f*ck," he muttered. Carmack had done it again.This feature alone had a profound impact on the development of Daikatana.From a code perspective, the renderer is 50% smaller than the software renderer (see the "Code Statistics" at the end of the page). If this meant less work for the developerit also mean this implementation is much less subtle and elegant than the software/assembly optimized version: The Z-Buffer removed the need for an Active Polygon Stack (this high reliance on a fast Z-buffer resulted in issues during the development of VQuake for V2200 (A few words by one of the dev Stefan Podell (mirror) )
The raw speed of the rasterizer chips combined to the speed of the Z-Buffer RAM voided the quest for zero overdraw.
The GPU integrated scanline routine removed the need for a Global Edge Table and an Active Edge Table.
Lightmap filtering being done on the GPU (and with RGB instead of grayscale): No trace of this on the CPU.
In the end the OpenGL renderer is more of a resource manager than a renderer: sending vertices, uploading lightmaps atlas on the fly with and setting texture states.Trivia : A typical frame in Quake2 is 600-900 polygons: A far cry from 2011 millions of polygons in any game engine.
Msvcrt.dll Need For Speed Most Wanted 2012
Fortunately, these differences have little or no impact on most of your source code. When source code or other changes are needed to address these differences, the fixes tend to be small and straight-forward. We've included many examples of previously acceptable source code that might need to be changed (before) and the fixes to correct them (after).
SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)
The CBALLS2 workload is where we see the biggest speedup with Nehalem, performance more than doubles. It turns out that CBALLS2 calls a function in the Microsoft C Runtime Library (msvcrt.dll) that can magnify the Core architecture's performance penalty when accessing data that is not aligned with cache line boundaries. Through some circuit tricks, Nehalem now has significantly lower latency unaligned cache accesses and thus we see a huge improvement in the CBALLS2 score here. The CBALLS2 workload is the only one within our SPECapc 3dsmax test that really stresses the unaligned cache access penalty of the current Core architecture, but there's a pretty strong performance improvement across the board in 3dsmax.
I know in this small code function pYq_i_detail is the most time consuming part, so I tried my best to optimize this part, and did many experiments, finally I believe my this implementation of function pYq_i_detail should be the fastest one can get. Overall, what I did is basically instead of calcualting the product of exp(stuff)*exp(stuff)*exp(stuff)*exp(stuff)*exp(stuff)..., I calculate the sum=stuff+stuff+stuff+... first, then finally do one exp(sum). In fact, in some cases, the real thing we need is just the sum, so using sum can escape the exp(sum) exploding issue.
Debugging is one of the most valuable skill sets when it comes to software development and maintenance. This is a skill that is used at every stage of a product's life cycle. The developer first creating the project will obviously run into bugs. These bugs can be anywhere from logic bugs to syntax bugs and compiler errors. The quality assurance being conducted on the software may run into problems as more advanced scenarios are tested and the software interacts with other environments. Finally, after release of the product, it must be supported. The debugging does not end when the customer gets the software, bugs are generally escalated back to the company who will now again need to debug.
In order to kernel debug, you first need to boot the Operating System in debug mode. Although there is a GUI under system properties to do this, I generally edit the boot.ini directly. Locate the boot.ini on the root of your C:\ drive. It is most likely a hidden system file. I would attrib -r -s -h boot.ini and then open it for edit.
Viewed 10K+ times! This question is You Asked Hi Tom, I am using Wint NT,Oracle 8i(server) and C language. My goal is calling 'c' routine thru stored procedure. For that I had made neccesary steps.I had modified Tnsnames and listener entry as follows. Tnsnames entry------------------------extproc_connection_data = (DESCRIPTION = (ADDRESS = (PROTOCOL=IPC) (KEY=extproc_key) ) (CONNECT_DATA = (SID = extproc_agent) ) Listener entry-------------------EXTERNAL_PROCEDURE_LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL=ipc) (KEY=extproc_key) ))SID_LIST_EXTERNAL_PROCEDURE_LISTENER =(SID_LIST = (SID_DESC = (SID_NAME=extproc_agent) (ORACLE_HOME=d:\oracle8i) (PROGRAM=extproc) ))Then I want to create the dll.Here I have a doubt how to use the dll.Any my 'C' routine is/*This program will gives square the number*//*square.c*/#include main(int argc,char *argv[]) int no; no = argv[1]; return no*no;My next question is "Would I need to include any OCI statements inside of 'C' routines?".If say yes,Please tell me how to I do it?. and Tom said...You do not create a DDL with a main. You create an EXE with a main.You do not *need* to have OCI in your extproc. Many (most) do however -- to handle errors and such.Look in $ORACLE_HOME\plsql\demo for ext*.*. There is a full example of an extproc routine there including the C code for you to review.It is recommended to test the installation of external procedures with the demonstration programs. The reason for this is twofoldá Oracle support is aware of and can help setup/configure the demonstration program. If we work with an example they know about V well be able to resolve any issues that much fasterá The supplied demonstration program will illustrate the correct approach for compiling and linking on your platformThe demonstration program is found in your $ORACLE_HOME/plsql/demo directory on all releases of Oracle8i. The steps we should follow to make the demonstration are:Compile the extproc.c code into a DLL or .so/.sl/.a file. The process for doing that on NT is to simply cd to the ORACLE_HOME\plsql\demo directory and type make (they have supplied a Make.BAT file in that directory):C:\oracle\plsql\demo>makeMicrosoft (R) 32-bit C/C++ Optimizing Compiler Version 10.00.5270 for 80x86Copyright (C) Microsoft Corp 1984-1995. All rights reserved.extproc.cMicrosoft (R) 32-Bit Incremental Linker Version 3.00.5270Copyright (C) Microsoft Corp 1992-1995. All rights reserved./out:extproc.dll/dll/implib:extproc.lib/debug..\..\oci\lib\msvc\oci.libmsvcrt.lib/nod:libcmt/DLL/EXPORT:UpdateSalary/EXPORT:PercentComm/EXPORT:PercentComm_ByRef/EXPORT:EmpExp/EXPORT:CheckEmpName/EXPORT:LobDemoextproc.objC:\oracle\plsql\demo>In Unix, you will do much the same but the command to compile is different. There it will look like:$ make -f demo_plsql.mk extproc.so/usr/ccs/bin/make -f /export/home/ora816/rdbms/demo/demo_rdbms.mk extproc_callback SHARED_LIBNAME=extproc.so OBJS="extproc.o"K..After that command completes, you will have a .DLL file on NT or a .so/.sl/.a file on Unix (extension depends on platform. For example, Solaris is .so, HP/UX will be .sl).Set up the scott/tiger accountFor this demonstration program to work correct, we will need a scott/tiger demo account. If your database does not have a scott/tiger account, you can set one up by issuing: SQL> grant connect, resource to scott identified by tiger;That will create the scott user and give it the ability to connect to the database and create objects like tables and packages. You will most like want to assign this use a default tablespace other then SYSTEM and a temporary tablespace as well. Given that we have the scott/tiger account, we must provide it with one additional grant before proceeding. The SCOTT user will need the CREATE LIBRARY privilege. This privilege will allow SCOTT to issue the create library statement needed for external procedures (more on that in a moment). As this is a fairly powerful privilege V you will want to consider revoking it from SCOTT after running the example. To accomplish this you will: SQL> grant create library to SCOTT;When connected as someone who has the CREATE LIBRARY privilege with the ADMIN option themselves (eg: SYSTEM or some DBA account).Lastly, you will want to ensure the EMP/DEPT demo tables are in the scott schema and populated with data. You can verify this via:SQL> select count(*) from emp; COUNT(*)---------- 14SQL> select count(*) from dept; COUNT(*)---------- 4If these tables do not exist or do not have any data V you can rebuild them by executing demodrop.sql (to remove them) and demobld.sql (to create and populate them). These scripts are found in $ORACLE_HOME/sqlplus/demo and are meant to be executed via sqlplus when logged in as SCOTT.Create the demolib LIBRARYThe next step in the demonstration is to create the library object in Oracle. This object is simply a mapping of a library name (some 30 character name you choose) to a physical operating system file. This OS file is your compiled binary we made in the first step. The user who issues the create library statement must have the CREATE LIBRARY privilege granted to them either via a ROLE or directly. This privilege is considered a fairly powerful one and should be given out only to those accounts you trust with the privilege. It will allow them to execute any arbitrary C code they wish on your server machine using the account the extproc service executes with. This is one of the reasons you would want to configure the extproc service to execute under some account other then the Oracle software owner (to avoid the inadvertent or malicious overwriting of your System tablespace for example).In order to accomplish this step, you use SQLPlus and execute:SQL> connect scott/tigerConnected.SQL> create or replace library demolib as 'c:\oracle\plsql\demo\extproc.dll'; 2 /Library created.The name DEMOLIB is what the developers of the demo chose as the name of their library V you must use DEMOLIB. The file name c:\oracle\plsql\demo\extproc.dll may be different for you V I built the example directly in the demo directory of my Oracle_Home. You may have a different Oracle_Home then I do or you might have built the demo in some other directory entirely V you should use the actual path name of the extproc.dll you built in the first step.Installing and running the demo packagesThe last step in the demo is to install the PLSQL code that maps to routines in the demolib library. We are not interested at this point in what they look like as much as we are what they output V we are using this demo to test external procedures, well look at how we code them in a bit.Now we will simply execute:SQL> connect scott/tigerConnected.SQL> @extprocWhen in the $ORACLE_HOME/plsql/demo directory. What we expect to see is:SQL> @extprocPackage created.No errors.Package body created.No errors.ENAME : ALLENJOB : SALESMANSALARY : 1600COMMISSION : 300Percent Commission : 18.75ENAME : MARTINJOB : SALESMANSALARY : 1250COMMISSION : 1400Percent Commission : 112Return value from CheckEmpName : 0old_ename value on return : ANILENAME : 7369HIREDATE : 17-DEC-80Employee Experience Test Passed.***************************************PL/SQL procedure successfully completed.K. (other feedback would be here as well)K.That shows that external procedures are correctly configured and ready to be used on our system V the first procedure executes many of the routines in the extproc.dll we created. This shows conclusively that all is configured correctly.In the event of an incorrectly configured system, you would expect to see:SQL> @extprocPackage created.No errors.Package body created.No errors.BEGIN demopack.demo_procedure; END;*ERROR at line 1:ORA-28575: unable to open RPC connection to external procedure agentORA-06512: at "SCOTT.DEMOPACK", line 61ORA-06512: at "SCOTT.DEMOPACK", line 103ORA-06512: at line 1That implies that it is time to revisit your tnsnames and listener.ora configuration. Rating (17 ratings)Is this answer out of date? If it is, please let us know via a Comment Comments Comment A reader, November 21, 2001 - 7:38 pm UTC 2ff7e9595c
Comentarios