Procedural Texture Maps with Shared Caching for Graphics Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processors face inefficiencies due to lack of effective communication mechanisms between threads, particularly when handling high-resolution images with similar pixel values, leading to inefficiencies in concurrent computations.

Innovation Solution

The implementation of procedural textures, which use a texel shader to generate color values based on quantized texture coordinates, allowing for caching of results to share data between threads and support interpolation, thereby enhancing data sharing and scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional texture maps are used with high-resolution images, then image quality is improved, but computation efficiency deteriorates due to redundant calculations in concurrent threads

Engineering Contradiction:
Improveimage qualityVSAvoidcomputation efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent creates a procedural texture that generates texture data on-demand through a texel shader function rather than storing complete texture maps in memory. This allows concurrent threads to share the same procedural definition and cache results, eliminating redundant computations while maintaining high image quality through consistent texture generation.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent implements a texture cache that stores pre-computed texel results before they are needed by concurrent threads. By caching results of texel shader invocations, the system performs preliminary computations that avoid redundant calculations when neighboring pixels require similar texture values, thus improving computation efficiency.

Inventive Principle:
Principle #10Preliminary action

2Extent of automation

If concurrent threads compute texture values independently, then parallel processing capability is utilized, but data sharing efficiency deteriorates due to lack of communication mechanisms

Engineering Contradiction:
Improveparallel processingVSAvoiddata sharing efficiency
Core Design Contradiction:
Extent of automationVSProductivity

Solution Approach 1:

The patent introduces a texture cache as an intermediary data structure that mediates between concurrent threads. Each thread accesses the shared cache to retrieve or compute texture values, enabling efficient data sharing without requiring complex inter-thread communication mechanisms. The cache acts as a common memory space that automatically shares results across threads.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If texture filtering is applied to procedural textures, then interpolation quality is improved, but computation complexity increases due to additional filtering operations

Engineering Contradiction:
Improveinterpolation qualityVSAvoidcomputation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges the texture filtering operation with the procedural texture sampling process. By combining filtering with the texel shader invocation and cache lookup, the system performs interpolation automatically as part of the standard sampling operation, maintaining high interpolation quality while avoiding separate complex filtering computation steps.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9881391B2Procedurally defined texture maps
Publication Date: 2018.01.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9881391B2 patent drawing
  • US9881391B2 patent drawing
  • US9881391B2 patent drawing

AI summary

A procedural texture relates texel coordinates to color values through an arbitrary function, herein called a texel shader. The procedural texture is defined by a dimension, size, texel format and the texel shader. Texel coordinates are an input to the texel shader, which generates a color value for those texel coordinates. A renderer can be implemented either in hardware, such as part of a graphics processor, or in software as a computer program executed by a processor. The renderer samples from the procedural texture in response to texel coordinates, and evaluates the texel shader on demand. Filtering also can be applied automatically to results. The results of the texel shader invocations are stored in a texture cache to take advantage of spatial and temporal locality. Results are shared among threads, processes and the like through the texture cache.