IP Library › Granted Patent US 10,242,494
Granted Patent B2
US 10,242,494 · App. 15/477,016 · Granted Mar 26, 2019

Conditional shader for graphics

Inventors: Prasoonkumar Surti (Folsom, CA); Karthik Vaidyanathan (Berkeley, CA); Murali Ramadoss (Folsom, CA); Michael Apodaca (Folsom, CA); Abhishek Venkatesh (Hillsboro, OR); Devan Burke (Portland, OR); Philip R. Laws (Santa Clara, CA); Subramanian Maiyuran (Gold River, CA); Abhishek R. Appu (El Dorado Hills, CA); ElMoustapha Ould-Ahmed-Vall (Chandler, AZ); Peter L. Doyle (El Dorado Hills, CA)
Assignee: Intel Corporation
G06T15/80G06F9/5011G06T1/20G06T5/20G06F9/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,242,494
App. No.
15/477,016
Granted
Mar 26, 2019
Kind
B2
Abstract

An embodiment of a conditional shader apparatus may include a conditional pixel shader to determine if one or more pixels meet a shader condition, and a pixel regrouper communicatively coupled to the conditional pixel shader to regroup pixels based on whether the one or more pixels are determined to meet the shader condition. Another embodiment of a conditional shader apparatus may include a thread analyzer to determine if a set of threads meet a thread condition, and a conditional kernel loader communicatively coupled to the thread analyzer to load an appropriate kernel from a set of two or more kernels based on whether the set of threads are determined to meet the thread condition. Other embodiments are disclosed and claimed.

Claims (31)

1. An electronic processing system, comprising:

an application processor;

persistent storage media communicatively coupled to the application processor; and

a graphics subsystem communicatively coupled to the application processor, wherein the graphics subsystem includes:

a conditional shader, wherein the conditional shader is split into two invocations to:

determine, in the first invocation of the conditional shader, if one or more processing elements meet a condition associated with an execution unit instruction set that includes single instruction multiple data (SIMD) instructions, wherein the single instruction multiple data (SIMD) instructions support parallel execution of a plurality of threads even in the absence of multiple independent instruction units, wherein the condition is whether one or more pixels of the processing elements survives or not, and wherein the condition comprises a visibility-type shader condition; and

process, in the second invocation of the conditional shader, the one or more processing elements based on whether the one or more processing elements are determined to meet the condition, wherein the surviving pixels are passed to parallel execution via the single instruction multiple data (SIMD) instructions only when the given pixel survives; and

a pixel regrouper communicatively coupled to the conditional shader to regroup the surviving pixels for parallel execution via the single instruction multiple data (SIMD) instructions, wherein the regroup operation is based on whether the one or more pixels are determined to meet the condition.

2. A conditional shader apparatus, comprising:

a conditional pixel shader to,

wherein the conditional pixel shader is to be split into two invocations to: determine, in the first invocation of the conditional pixel shader, if one or more pixels meet a shader condition associated with an execution unit instruction set that includes single instruction multiple data (SIMD) instructions, wherein the SIMD instructions support parallel execution of a plurality of threads in an absence of multiple independent instruction units, and wherein the shader condition is whether any of the one or more pixels survives or not, and wherein the condition comprises a visibility-type shader condition; and

process, in the second invocation of the conditional pixel shader, the surviving pixels based on whether the one or more processing elements are determined to meet the shader condition, and wherein the surviving pixels are passed to parallel execution via the SIMD instructions only when a given pixel survives; and

a pixel regrouper communicatively coupled to the conditional pixel shader to regroup the surviving pixels for parallel execution via the SIMD instructions, wherein the regroup operation is based on whether the one or more pixels are determined to meet the shader condition.

3. The apparatus of claim 2 , wherein the condition pixel shader is further to: determine if the one or more pixels meets a visibility condition.

4. The apparatus of claim 3 , wherein the pixel regrouper is further to:

regroup the one or more pixels determined to meet the visibility condition for an instruction pipeline.

5. The apparatus of claim 3 , wherein the condition pixel shader is further to:

determine if the one or more pixels are lit.

6. The apparatus of claim 5 , wherein the pixel regrouper is further to:

regroup the one or more pixels determined to be lit for a single instruction, multiple data pipeline.

7. A method of conditional shading, comprising:

determining if one or more pixels meet a shader condition, via a conditional pixel shader that is split into two invocations, wherein the determining if one or more pixels meet the shader condition comprises:

determining, in the first invocation of the conditional pixel shader, if one or more pixels meet a shader condition associated with an execution unit instruction set that includes single instruction multiple data (SIMD) instructions, wherein the SIMD instructions support parallel execution of a plurality of threads in an absence of multiple independent instruction units, and wherein the shader condition is whether any of the one or more pixels survives or not and wherein the condition comprises a visibility-type shader condition; and

processing, in the second invocation of the conditional pixel shader, the surviving pixels based on whether the one or more processing elements are determined to meet the shader condition, and wherein the surviving pixels are passed to parallel execution via the SIMD instructions only when a given pixel survives; and

regrouping the surviving pixels for parallel execution via the SIMD instructions, wherein the regroup operation is based on whether the one or more pixels are determined to meet the shader condition.

8. The method of claim 7 , further comprising:

determining if the one or more pixels meets a visibility condition.

9. The method of claim 8 , further comprising:

regrouping the one or more pixels determined to meet the visibility condition for an instruction pipeline.

10. The method of claim 8 , further comprising:

determining if the one or more pixels are lit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2019
From: SURTI, PRASOONKUMAR; VAIDYANATHAN, KARTHIK; RAMADOSS, MURALI; APODACA, MICHAEL; VENKATESH, ABHISHEK; BURKE, DEVAN; LAWS, PHILIP R.; MAIYURAN, SUBRAMANIAM; APPU, ABHISHEK R.; OULD-AHMED-VALL, ELMOUSTAPHA; DOYLE, PETER L.
To: INTEL CORPORATION
Reel/Frame 048233/0188 →
Continuity (1)
Related Publication 20180286115A1 · Oct 4, 2018