Abstract:
In a computer system having a host processor, a peripheral graphics device, a display screen, and a memory, a non-homogenous second order perspective texture mapping process. Polygon coordinates, am,n, defining a texture polygon, are received. Initial values are received for a set of parameters including umain, vmain, dvortho, dvmain, duortho, dumain, d uortho, d umain, d vortho, d vmain, duortho-ADD, and dvortho-ADD. The texture polygon includes span regions. A span value, j, is set to an initial value to designate an initial span region of the texture polygon in (m, n) polygon coordinate space. The total number of rows, nmax, is determined for the current span region of the polygon. The total number of polygon coordinates, mmax, in the current row, n, of the texture polygon is determined. An (x, y) display coordinate, corresponding to the current polygon coordinate, am,n, is set by translating from (m, n) polygon space to (x, y) display coordinate space. Texture coordinates, u(am,n) and v(am,n), are determined, according to the present invention, for each polygon coordinate, am,n, using linear interpolation based on a set of relationships that utilize the above parameters without using a repetitive divide operation. A display pixel of a color determined according to texture coordinates, u(am,n) and v(am,n), is rendered on a display screen at the determined (x, y) position.
Abstract:
A method for computing input parameters used in a non-homogeneous second order perspective texture mapping process using interpolation. The present invention receives a polygon primitive (e.g., triangle) including screen display coordinates and texture map coordinates for each vertex (vmin, vmid, and vmax). Based on vertex information including perspective weight, w, screen display coordinates and texture map coordinates are determined for midpoint (i and j) of the two triangle slopes opposite the triangle's major slope. Based on a determined quadratic equation of the triangle's major slope, screen coordinates and texture map coordinates are determined at several selected points (e.g., imain, jmain, and midmain) along the major slope that corresponds to the i, j, and vmid points. From these values, quadratic coefficients a1, a2, and du_ortho_add are computed and also quadratic coefficients b1, b2 and dv_ortho_add are computed. The above values, parameters u_main, du_main (change in u over change in y), d2u_main (changed in DELTA u over change in DELTA y), du_ortho (change in u over change in x), d2u_ortho (change in DELTA u over change in DELTA x), v_main, dv_main (change in v over change in y), d2v_main (change in DELTA v over change in DELTA y), dv_ortho (change in v over change in x), and d2v_ortho (change in DELTA v over change in DELTA x) are computed and forwarded to a non-homogenous second order perspective texture mapping process using interpolation. The above texture mapping process is extremely efficient as it is free of division operations during the interpolation.
Abstract:
The problems associated with CPU hoggin when running legacy applications, such as DOS applications, on a modern operating system, such as Windows 95, are overcome by creating a Virtual Device Driver VxD to manage needs for guaranteed CPU access by various processes and devices. The virtual device driver utilizes services of Virtual Machine Manager to guarantee CPU access by requesting processes and devices.
Abstract:
A reduced power FIR filter may be utilized as the digital decimation filter for a delta sigma ADC. The FIR filter utilizes a serial bit stream which is part of the control path of the filter. Thus, operations of the circuitry which comprises the filter may be controlled depending upon the data presented at the output of the delta sigma modulator. In particular, filter operations may be enabled only for a given digital state, for example, a digital 1 state. Thus, the filter operations may be enabled only for typically half of the bits from the serial bit stream and the power usage of the digital filter is significantly reduced.
Abstract:
A graphics subsystem includes hardware and/or software for permitting mip-maps to be dynamically switched based upon depth (Z) values. In addition, the system generates a SHIFT signal to permit automatic adjustment of texture parameters to facilitate retrieval of texture maps. The system includes a mip-map select logic or routine that compares the depth value of a pixel to be rendered with predetermined depth values. The depth values may be stored in a plurality of depth registers, and compared with the depth value of a pixel in a plurality of associated comparators. A mip-map is selected based upon the comparisons, and the SHIFT signal is generated to indicate the order of change with respect to a base reference mip-map. A texture engine receives the SHIFT signal and uses the associated base address of the selected mip-map and shifted texture parameters to define an address for the texture map.
Abstract:
In a computer system, a peripheral graphics device (PGD) accesses a graphics buffer (GB) wherein the GB physical pages can be contiguous or discontiguous. A request is received to allocate memory for a GB of a predetermined size and handle. The number of pages within the size parameter is determined based on the page size used by the computer system and the buffer size needed. A first memory block is allocated for storing the GB and locked to prevent swapping. A starting virtual address of a CPU page table (CPU/PT) is accessed and mapped to a starting logical address to allow traversal of the CPU/PT by a user application. A second memory block is allocated for building a graphics device page table (GDPT) that can be accessed by a PGD. The logical address of each GB page is sequentially accessed and the corresponding physical address of each GB page is determined from the CPU/PT. The logical and physical addresses of each GB page are stored into the GDPT. If all physical pages of the GB are contiguous, the logical and physical addresses of the GB are stored into a database indexed by a user handle. Otherwise, the starting address of the GDPT is stored into the database indexed by a user handle. Provided that all of the GB physical pages are contiguous, the PGD accesses the GB by its starting physical address. Otherwise, the PGD uses the GDPT to access the discontiguous physical pages of the GB.
Abstract:
In a computer controlled graphics system, processes are provided for detecting errors incurred in a display list having variable length instruction/parameter (I/P) sets, the errors occurring during parameterization, transmission, branching, and storage of the display list. Each process includes generating a display list including I/P sets, each I/P set including n parameter words following an instruction word. In each embodiment, a display list is encoded, transmitted, stored in a memory unit, and verified. In one embodiment, the display list is encoded by storing into each instruction word of each I/P set a parity bit of a value representative of the parity of the whole I/P set. In another embodiment, the display list is encoded by storing within each instruction word of each I/P set an m-bit checksum value. The m-bit checksum value is generated by partitioning each I/P set into y m-bit partitions which are summed, ignoring overflow. In a third embodiment, a display list is encoded by appending each I/P set with a checksum word generated by summing the instruction word and each of the n parameter words of each I/P set, ignoring overflows. In each embodiment, the encoded display list is stored in a memory unit and later accessed for verification. In each embodiment, verification is performed by re-performing the respective encoding scheme for each I/P set. Upon detection of an error, corrective action, including a debug message can be taken.
Abstract:
A sound or music synthesizer includes a reverberation simulator having a substantially reduced volatile storage, random access memory, or buffer size in comparison to conventional reverberation simulators by decimating the sound signal prior to applying the sound signal to a reverberator and then interpolating the sound signal generated by the reverberator to restore the sample frequency. The substantial reduction in buffer size enables the usage of the reverberator in low-cost, reduced size and single-chip environments.
Abstract:
A method is provided for refreshing data stored in a frame buffer. Data stored in the first area of the frame buffer are automatically refreshed during retrieval of such data for display generation. Data stored in a second area of a frame buffer is refreshed according to the following substeps. A determination is made as to whether selected data in the second area of the frame buffer is required during the generation of an upcoming display line. The selected data is read from the second area when such data from the second area of the frame buffer is required for generation of the upcoming display line. A refresh is initiated of at least a portion of the second area when data from the second area is not required for the generation of the upcoming display line and a time for refresh of the second area has been reached.
Abstract:
A VCO includes a ring oscillator formed by connecting a plurality of voltage controlled inverting delay cells together, and a plurality of transistors for providing control voltages to the plurality of voltage controlled inverting delay cells. Preferably, each transistor has a drain connected to a reference voltage, and a source connected to a voltage controlled inverting delay cell paired to that transistor. Consequently, each transistor acts as a source-follower so that it provides a control voltage to its corresponding voltage controlled inverting delay cell which follows a control voltage driving its gate, thereby isolating the control voltage provided to its corresponding voltage controlled inverting delay cell from power supply noise.