© Copyright 3Dlabs 2004 Page 1 GLSL Conformance proposal December 2004.

Slides:



Advertisements
Similar presentations
Compilers Course 379K, TTH 9:30-11:00 Instructor: Dr. Doron A. Peled Office Hours: Mon 11:00-12:00.
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Designing Reusable Frameworks for Test Automation
1 The C Language An International Standard CIS2450 Professional Aspect of Software Engineering.
Programming Types of Testing.
© Copyright 3Dlabs 2004 Page 1 ARB Roadmap Discussion Sacramento, June 2004.
Yu-Chen Kuo1 Chapter 1 Introduction to Compiling.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
BİL744 Derleyici Gerçekleştirimi (Compiler Design)1.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
S ECURITY T OOLS F OR S OFTWARE D EVELOPMENT F X C OP 10.0 David Angulo Rubio.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
COP4020 Programming Languages
Chapter 1. Introduction.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
{ Graphite Grigory Arashkovich, Anuj Khanna, Anirban Gangopadhyay, Michael D’Egidio, Laura Willson.
CISC 471 First Exam Review Game Questions. Overview 1 Draw the standard phases of a compiler for compiling a high level language to machine code, showing.
Lexical Analysis - An Introduction Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
XP Tutorial 9 1 Working with XHTML. XP SGML 2 Standard Generalized Markup Language (SGML) A standard for specifying markup languages. Large, complex standard.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Lexical and Syntax Analysis
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
© Copyright OpenGL ARB, Page 1 Ecosystem Working Group Status Update Ecosystem Working Group Status Update Chair: Benj Lipchak, ATI.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 1, 08/28/03 Prof. Roy Levow.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Compilers: Overview/1 1 Compiler Structures Objective – –what are the main features (structures) in a compiler? , Semester 1,
Cross Language Clone Analysis Team 2 October 13, 2010.
Introduction to Compiling
Planning a compiler Source Language –A subset of C Target Language –Assembler Performance Criteria –Compiler speed –Code quality –Error diagnostics –Portability.
Chapter 1: Introduction 1 Compiler Designs and Constructions Chapter 1: Introduction Objectives: Course Objectives Introduction Dr. Mohsen Chitsaz.
ISBN Chapter 4 Lexical and Syntax Analysis.
© Copyright Khronos Group, Page 1 Khronos and OpenGL ES Status Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
1.3 Analysis And Synthesis OF LP Language Processor = Analysis of Source Program + Synthesis of Target Program. 1.
Creating FunctionstMyn1 Creating Functions Function can be divided into two groups: –Internal (built in) functions –User-defined functions.
Compiler Construction CPCS302 Dr. Manal Abdulaziz.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
1 Validation SAX-DOM. Objectives 2  Schema Validation Framework  XML Validation After Transformation  Workshops.
CS416 Compiler Design1. 2 Course Information Instructor : Dr. Ilyas Cicekli –Office: EA504, –Phone: , – Course Web.
Objective of the course Understanding the fundamentals of the compilation technique Assist you in writing you own compiler (or any part of compiler)
LECTURE 10 Semantic Analysis. REVIEW So far, we’ve covered the following: Compilation methods: compilation vs. interpretation. The overall compilation.
Concepts of Programming Languages Lecturer: Dr. Emad Nabil Lecture # 2.
Compiler principles Compiler Jakub Yaghob.
Compiler Design (40-414) Main Text Book:
Polymorphism, Interfaces & Operator Overloading
Introduction to Compiler Construction
Chapter 8 – Software Testing
Software Design and Development
Chapter 1: Introduction to Compiling (Cont.)
Bison: Parser Generator
CS416 Compiler Design lec00-outline September 19, 2018
Lexical and Syntax Analysis
Introduction CI612 Compiler Design CI612 Compiler Design.
Bison Marcin Zubrowski.
Compilers B V Sai Aravind (11CS10008).
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
C++ Compilation Model C++ is a compiled language
CS416 Compiler Design lec00-outline February 23, 2019
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Compiler Structures 1. Overview Objective
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 2, 09/04/2003 Prof. Roy Levow.
Presentation transcript:

© Copyright 3Dlabs 2004 Page 1 GLSL Conformance proposal December 2004

© Copyright 3Dlabs 2004 Page 2 OverviewOverview GLSL is a complex part of OpenGL 2.0 Portability of shaders across vendors is a concern What is shader portability? 1. Well-formed source code compiles on any system ISVs can write shaders knowing they will compile 2. Compiled source code runs in a reasonably similar manner on any system. Implementation of the language is similar across systems 3. The GLSL object API behaves as expected on any system Loading source code, error behavior, compile or link success and failures, attribute handling etc etc

© Copyright 3Dlabs 2004 Page 3 Well-formed source code compiles on any system GLSL spec states: Compilers are required to return messages regarding lexically, grammatically or semantically incorrect shaders. GLSL is a language in development => extensions are possible. Extensions guided by the GLSL Extension Conventions document in the registry. Avoids name-space collisions between vendors, between extensions and core Extensions that alter existing behavior must be explicitly enabled in a shader Extensions that alter semantics or syntax must be explicitly enabled in a shader This ensures ISVs get early warnings of possible non- portable code.

© Copyright 3Dlabs 2004 Page 4 GLSL front-end 3Dlabs provides open-source BSD license GLSL front-end. Front-end consists of pre-processor, lexical analyzer, parser, tree builder and semantic analyzer. Uses code from NVIDIA for pre-processing, flex, bison and C++. This front-end helps IHVs comply with the GLSL specification Compilers are required to return messages regarding lexically, grammatically or semantically incorrect shaders This front-end is used by multiple vendors. This front-end is well tested and scrutinized. => high quality. Bugs reported by those vendors as well as individual hobbyists. Free support Questions / suggestions / bug reports get prompt attention Why do we do this? To lessen interpretation confusion of a GLSL front-end. To promote the use by IHVs, which will increase shader portability.

© Copyright 3Dlabs 2004 Page 5 GLSL parser test 3Dlabs wrote utility to test adherence to the rule: Compilers are required to return messages regarding lexically, grammatically or semantically incorrect shaders BSD Open Source license Compiles 170+ shaders each aimed at testing a particular language construct. Compares compilation result to what is expected. Some tests should compile, some should fail. Easy to add new tests Returns info log for each test Reports a percentage compliance, number of passed, failed and crashed tests

© Copyright 3Dlabs 2004 Page 6 ResultsResults ATI Radeon X800-PRO Driver Catalyst 4.11 OpenGL Passed 176 Failed 7 Score 96% NVIDIA 6800 Ultra Driver OpenGL Passed 86 Failed 97 Score 47% 3Dlabs Wildcat Realizm 100 Driver Passed 182 Failed 1 Score 99%

© Copyright 3Dlabs 2004 Page 7 Wrap up Shader portability is in the best interest of ISVs and IHVs Lexical, Syntax and Semantic compliance is the least the ARB should guideto promote shader portability. 3Dlabs Proposes that the ARB adopts GLSL Parser Test for OpenGL 2.0 compliance.

© Copyright 3Dlabs 2004 Page 8 Questions?Questions?