<?xml version="1.0" encoding="utf-8"?>
<data>
<r t="10.28">say hi everybody thanks a lot for coming on to my talk about global</r>
<r t="15.91">so i'm robert right guy work for intel open source technology centre on the kind</r>
<r t="21.45">maintainer of the whole project</r>
<r t="33.91">so for those are not familiar with probably it's other consoles gpu graphics library originally</r>
<r t="40.37">created for the cluster projects they are these days as a standalone project</r>
<r t="45.81">it was created to deal with the possibility across different versions of opengl so course</r>
<r t="52.91">opengl yes opengl and even experimentally a bit these days with the web you know</r>
<r t="59.36">it's is so dealing with portability across operating systems</r>
<r t="65.47">one of the differences with some other graphics if you refuse are base is that</r>
<r t="70.82">initially when we created it we were interested in supporting more multiple sort of orthogonal</r>
<r t="76.47">components being of the contribute to the graphics rendering in a way that didn't trampling</r>
<r t="82.46">each other's us take tracking</r>
<r t="90.01">so in a still come hoping to go through first a run through of how</r>
<r t="95.11">we submit and process geometry with a gpu and when the something out</r>
<r t="102.99">and i want to then give</r>
<r t="106.23">an overview of the utilities in the couple library that try to make it really</r>
<r t="110.35">practical for writing graphics applications</r>
<r t="115.79">be on just access to the G P your hardware and then talk about some</r>
<r t="120.16">of the specific things we've been developing more recently just say that people get some</r>
<r t="124.76">insight to how the project is actually developing</r>
<r t="131.62">so first so wanna talk about</r>
<r t="134.41">basically the lowest level api even in cover which most closely matches have a gpu</r>
<r t="139.61">process is data</r>
<r t="141.5">i'm kind of personally interested in trying to expose more people to understand have a</r>
<r t="148.59">gpu itself works especially in the context of user interface development where i think we</r>
<r t="154.83">try to be on the utilise the flexibility of this hardware</r>
<r t="159.28">and the state-of-the-art for you are is today this is quite basic in comparison to</r>
<r t="166.32">you can see to sort of game developers and how successful they are using this</r>
<r t="170.26">hardware with many of this and that kind of constraints is us with</r>
<r t="174.57">interactivity and real time graphics</r>
<r t="177.67">so</r>
<r t="181.22">anyway the first thing that any applications gonna have to do they're gonna use google</r>
<r t="184.42">to draw something are with the G here is great and of the cobble context</r>
<r t="188.45">this is gonna just you could cool context news is gonna create your sandbox for</r>
<r t="193.69">all the data the call was gonna need to track for your application</r>
<r t="198.76">so then we're gonna need to create a so it's a destination for what we</r>
<r t="201.9">draw remove are rendering this is called a frame buffer</r>
<r t="204.97">a frame buffer is a collection of to debug is</r>
<r t="208.55">the but we care the most about is the colour buffer and that's where we're</r>
<r t="212.58">gonna store the results visually of what we're drawing but a frame of mind also</r>
<r t="216.9">contain other ancillary about this so that are is</r>
<r t="221.38">for accumulating the depth of the geometry that is used during this that we have</r>
<r t="227.15">to see so you know these guys</r>
<r t="232.54">in probably create a frame buffer you can you can great and on screen frame</r>
<r t="236.18">buffer that would be visual to a visible to use of coding got one screen</r>
<r t="240.46">you with the size alternative you would create an offscreen frame buffer by creating a</r>
<r t="244.82">text you have with a given size and then you would rat that texture with</r>
<r t="249.65">as an offscreen frame buffer</r>
<r t="253.25">so if we have a destination that's where we're gonna store results then we need</r>
<r t="257.51">some data that we're gonna process with the G P A and how does a</r>
<r t="261.6">gpu except data</r>
<r t="263.68">so</r>
<r t="265.78">and gpus</r>
<r t="268.82">also actually the is so the thirty forms of data so we i think</r>
<r t="278.82">so</r>
<r t="283.19">the in cover we support lighting image data have for</r>
<r t="291.67">sorry</r>
<r t="300.5">in the order</r>
<r t="302.61">and image it's a as a form of a so that we would expect we</r>
<r t="306.64">have person a gpu be on search german tree and it's a in probably support</r>
<r t="312.34">lighting textures on the from finals from afar name or from about four with a</r>
<r t="320.93">given size that and by sending data on that texture us one is being up</r>
<r t="329.38">to images into a larger at this of images a</r>
<r t="338.67">and it's often useful to be able to</r>
<r t="342.44">how can we just again as a high level protection the way you often it</r>
<r t="345.75">is a compact and to be have the packs more images into a larger images</r>
<r t="349.74">to avoid state changes and another form of textures the gpus process of pictures great</r>
<r t="356.62">from when your system resources such as X eleven expects or while and</r>
<r t="366.76">i'm sorry the older this</r>
<r t="376.6">okay</r>
<r t="379.03">it's just that</r>
<r t="380.33">the left and right click it doesn't very this is a real andreas breaks the</r>
<r t="384.17">slide down to the sections which of vertical sections like this pressing that right skip</r>
<r t="390.41">saver</r>
<r t="391.36">pretty big chunk that so which</r>
<r t="393.41">so about a so this'll spree this slightly better slide talk a week or two</r>
<r t="399.21">meeting date to the G P so depressing we need we have to do is</r>
<r t="402.16">the actual geometry into the G P A so first we need to actually understand</r>
<r t="406.63">what they to the G P processes and that is geometry which is test selected</r>
<r t="411.35">from triangles is the primary form in which we price estate on the G P</r>
<r t="416.17">A so you</r>
<r t="418.69">to understand</r>
<r t="421.24">you have the how we describe astrology the next thing to understand that's a this</r>
<r t="426.09">up about that is the stuff like just jump ahead at and sorry about that</r>
<r t="430.99">but we're gonna fast go through explaining how the geometries this but apologies and</r>
<r t="437.98">so the way we describe it geometries might tell is german treaters trying plated from</r>
<r t="444.28">attempt to assign different triangles and there's triangles themselves made of that but to cease</r>
<r t="449.88">and that is that sees are themselves components of what are called attributes</r>
<r t="455.56">so examples of attributes he would be so positions for each vertex in a triangle</r>
<r t="460.56">so you would have a position</r>
<r t="463.87">which could be a coordinate two D or three D coordinate reach but text in</r>
<r t="468.01">that geometry or it might be a colour for each vertex in the geometry or</r>
<r t="475.03">it might be i</r>
<r t="477.07">a texture coordinate that would could be at to detect record there</r>
<r t="481.58">it is the mapping a specific subregion of an image that is a don't you</r>
<r t="485.8">there's a lot of flexibility in the gpus to what data you can associate with</r>
<r t="490">about season your geometry and these are just very the examples but it's you can</r>
<r t="496.46">have all of the cost and data so i see the outcome actually</r>
<r t="500.61">but they don't you can also have many different apologies so tip about apologies would</r>
<r t="504.79">be that you have a triangle list which is where you would have</r>
<r t="508.43">so i sets of three but the sees which represent completely disjoint and disconnected triangles</r>
<r t="516.88">or you might have a strip of triangles and that would be you divide your</r>
<r t="520.74">first set of three but sees feel first triangle and then one additional verdict is</r>
<r t="525.56">gonna connect to the last two that sees of your script to make one more</r>
<r t="528.92">triangle and so one more vertex connects the last event these answers a more data</r>
<r t="533.68">efficient way of describing some geometry than with the less if that's applicable to your</r>
<r t="538.98">which on your trying to describe and last example would be a band where you</r>
<r t="543.33">just have a single but clicks in the centre and then the rest of the</r>
<r t="546.33">triangles gonna spend a lot of that</r>
<r t="548.7">and that's and one</r>
<r t="555.43">so how do we actually described estate using the called I P I</r>
<r t="561.15">so the first thing we're gonna do is describe</r>
<r t="563.53">decide what kind of data we want to associate with the each of those matrices</r>
<r t="568.68">there is some different strategies as to how you present estate to the G P</r>
<r t="572.85">so i'm just gonna give you one very typical like how we would do this</r>
<r t="577.41">so</r>
<r t="579.02">we decide that we wanna have a position the colour and texture gordon associated with</r>
<r t="583.46">each vertex in our geometry we're gonna create a since even greater about six am</r>
<r t="588.96">i-vector extractor in this case and it has a position it has two components of</r>
<r t="594.74">the position X and Y coordinates into D and there of type fly we're gonna</r>
<r t="600.77">have full components of the colour but we implement out for a and each of</r>
<r t="604.15">those is a by a number gonna have two components protect recording it and those</r>
<r t="608.26">are touch like nist one</r>
<r t="611.18">and</r>
<r t="613.14">this but what about an this is just that we've taken on my vertex struck</r>
<r t="617.58">which is a vertex i'm with declaring an array of these and we're gonna plot</r>
<r t="621.72">out we've got three about sees for one triangle and with plotting out the positions</r>
<r t="626.34">of the but sees giving each method the colour and where specifying the texture coordinates</r>
<r t="632.42">you</r>
<r t="635.26">so we nine to up like that data to the gpus able to read and</r>
<r t="639.29">prices that and that's just a case of uploading into a cover that should be</r>
<r t="642.51">but we do that by coding a battery but when you repulsed in the size</r>
<r t="647.3">of the data that we want to apply time we pass in the actual point</r>
<r t="650.16">to the data</r>
<r t="652.18">and that's gonna give us a reference to about</r>
<r t="656.42">the next thing is that we're going to have to describe the G P or</r>
<r t="661.17">how is it that it can what we got data needs to know that i</r>
<r t="664.41">have to that data so it's right three the but sees to process it</r>
<r t="669.31">and so if we reach out to be we need to create a cover that</r>
<r t="674.06">should be and we go global attribute new and we're gonna pass in a reference</r>
<r t="678.47">to the buffer which is a date there are actually so we do we declared</r>
<r t="682.33">and we're gonna give each attribute and nine we're gonna specify what is this be</r>
<r t="688.19">and the number of bytes that we need to step to be have to move</r>
<r t="691.02">from the best the text of the second but sex and so on</r>
<r t="695.16">and then we're gonna need to specify what's the offset from the beginning of the</r>
<r t="698.41">buffer whether gpus gonna start reading for that should be here to</r>
<r t="703.06">process that data</r>
<r t="705.44">lastly we need to specify the number of compared to data have you have to</r>
<r t="708.74">take</r>
<r t="711.56">like two components</r>
<r t="715.93">so assuming we do the same thing for the colour and texture coordinates we have</r>
<r t="719.82">for batch we recovered attributes now</r>
<r t="723.82">we can now define one or more primitives</r>
<r t="726.75">the referring to that should be right so</r>
<r t="729.62">so at this point this is where we specify the actual topology that we want</r>
<r t="733.49">to that we wanna gpu to use to interpret that data so lists triangle friends</r>
<r t="738.62">trips or whatever</r>
<r t="740.18">so with the funny primitive here way because it's just a single triangle that apologies</r>
<r t="745.06">pretty meaningless so we specify that there are three but sees the belong to this</r>
<r t="750.87">specific primitive</r>
<r t="753.18">and then we specifying the actual attributes the belong to this primitive and in this</r>
<r t="757.82">case we using this of our function takes a know to make the list of</r>
<r t="762.06">that should be says</r>
<r t="769.62">so the</r>
<r t="772.17">other thing that gpus comprises besides the john geometric data that i just described that</r>
<r t="778.6">is that they can also still image data as textures citizen where we were a</r>
<r t="783.91">bit outflow of their own and i started going through</r>
<r t="788.56">how in cover we can like text data so we have we can let them</r>
<r t="792.3">from files we can load a texture just as an empty but and fill out</r>
<r t="798.01">from the C P with the point to we can also create these textures which</r>
<r t="802.31">are cool data structures like an example of a high level texture the pose able</r>
<r t="806.65">there are numbered if i don't use</r>
<r t="808.54">but it's sometimes useful for this band of packing images one texture</r>
<r t="814.36">to avoid</r>
<r t="816.12">like a changes for</r>
<r t="819.42">you are use cases</r>
<r t="822.25">and might these pictures from when the system resources</r>
<r t="827.38">what is</r>
<r t="828.68">and</r>
<r t="832.48">so we probably talk we put off right but what we're gonna store results with</r>
<r t="836.23">what our data which is these triangles and images as textures so now we need</r>
<r t="841.65">to figure out how to describe the pipeline by which this is all gonna be</r>
<r t="845.15">processed</r>
<r t="850.74">so i'm gonna give a really sky high level view of any it example of</r>
<r t="856.53">how you can configure gpu pipeline to process data of modern T is pretty don</r>
<r t="861.46">flexible and they're a number of stages a cut optional state is really but that</r>
<r t="868.35">i'm not representativeness example but it is still a very typical a common example is</r>
<r t="874.94">for is this technology</r>
<r t="877.13">they're gonna start with our geometry we coming in on the left</r>
<r t="881.53">and we're gonna bust going to this but expressing stage in this stage we're gonna</r>
<r t="887.44">transform a german three we're gonna scale it rotated translated we're gonna projected so that</r>
<r t="893.11">points at a button away from the origin are gonna attenuate towards vanishing point to</r>
<r t="898.34">the</r>
<r t="899.67">realistic</r>
<r t="901.47">and at the end of the stage all about german tree is gonna be transformed</r>
<r t="904.85">into the coordinate space about frame but</r>
<r t="908.11">and it's conceptually a range within a scene of other geometry</r>
<r t="914.62">bands</r>
<r t="916.21">the next stage after that is the frogman processing stage in the G P is</r>
<r t="920">gonna go through each of the triangles in our geometry and it's gonna i would</r>
<r t="924.53">like that with the pixel grid about frame buffer in it's gonna consider for each</r>
<r t="928.18">pixel where the centre of the</r>
<r t="931">what's called a fragment where that is within the bounds of that triangle then it's</r>
<r t="935.74">gonna run a program to basically calculate colour for that fragment at this point when</r>
<r t="940.31">you're calculating not colour</r>
<r t="942.15">you can but that's of those textures the we floated</r>
<r t="946.13">and</r>
<r t="947.29">also the coolness of each triangle where we have those attribute values coming in there</r>
<r t="952.55">is can be interpolated say that for every intermediate fragment network processing we have interpolated</r>
<r t="959.69">attribute values to contradict</r>
<r t="962.62">program</r>
<r t="964.73">so in the final step</r>
<r t="966.82">we take all of those fragments and we know need to humanise there is onto</r>
<r t="970.32">the existing contents of the frame buffer</r>
<r t="973.43">to build up a whole scene and it this point we might also be reading</r>
<r t="978.15">back insisting colours in a frame buffer to be able to say if the effect</r>
<r t="981.82">of transparency by combining in coming</r>
<r t="984.81">destination ones</r>
<r t="987.14">and so the buttons wasting the from present processing state is there is programmable stage</r>
<r t="992.5">is very flexible the planning stages tends to what is a much more limited functionality</r>
<r t="999.74">done and fix function of us still a can lay down do that stuff</r>
<r t="1004.31">and</r>
<r t="1005.92">and the well in which the actually the hardware prices this is very paralysed there</r>
<r t="1013.11">is if you have a primitive without one for triangles coming and there's not really</r>
<r t="1017.01">any bordering guarantees as to have a gpus gonna price essays triangles</r>
<r t="1021.77">and it's gonna be doing lots of geometry the same time and similar with a</r>
<r t="1026.51">fragment processing the order exact order in which is gonna priceless fact is not something</r>
<r t="1031.15">you get to guarantee and it's very paralysed that you will be doing</r>
<r t="1036.68">sorry</r>
<r t="1038.94">so kind of have a gpu prices to state a high level and</r>
<r t="1044.97">i don't have the time to explain lots of examples of using the cover if</r>
<r t="1049.08">you have to describe a</r>
<r t="1051.04">variations on configuring E D U but just to introduce you to the couple plot</r>
<r t="1056.7">line object which represents that whole processing part by the G P A</r>
<r t="1062.69">and we can create a peaceful pipeline by conical pipeline you</r>
<r t="1068.27">and to just give one example thing of for figuring it where we are introducing</r>
<r t="1073.27">a texture into that pricing but we're gonna associated texture with what's known as an</r>
<r t="1078.52">idea and this idea of layers use during the fragment pricing stage where they can</r>
<r t="1083.51">be combined and</r>
<r t="1084.93">us associating attention with layers there of that</r>
<r t="1092.28">so basically now we have all of the bits that it takes to actually draw</r>
<r t="1096.09">something a process similar gpu i'll just mention frame buffer of data a primitive we</r>
<r t="1100.94">got a processing pipeline we can call primitive draw busting the reference to that data</r>
<r t="1107.28">that frame buffer and is that the choice of five line</r>
<r t="1111.87">and so that's basically that's basically it but introducing datum pricing G P A and</r>
<r t="1117.34">it's</r>
<r t="1118.09">it is to distill as much as i got time to be able to</r>
<r t="1121.79">i give you</r>
<r t="1123.7">so the next thing i wanna talk about the utilities at all the whites that</r>
<r t="1127.85">go beyond just that lower level access to the gpu hardware that trying to make</r>
<r t="1132.72">it actually really practical to get stuff done is just basic things a little mice</r>
<r t="1137.53">all graphical applications need and gonna start off by introducing the math utilities that come</r>
<r t="1145.44">with bubble</r>
<r t="1147.05">we have matrices api matrices of the way that we deal with describing transformations of</r>
<r t="1154.32">geometry in combining those transformations</r>
<r t="1157.77">just essential stuff really matrix not build on top of that capability and kate to</r>
<r t="1165.87">the number of applications that want to organise that the geometry into seeing profs</r>
<r t="1170.77">so it's very common that you want to basically start these transformations together is interested</r>
<r t="1177.27">in seeing trough pushing them onto the stack "'em" popping them as you move around</r>
<r t="1180.79">the scene rough and this can say you re accumulating lots of transformations about this</r>
<r t="1186.17">is the on changing i frequency</r>
<r t="1189.21">and that is it just</r>
<r t="1191.4">you know use of all kinds of things the next can be to have a</r>
<r t="1194.33">you know it's on and dealing with that is</r>
<r t="1196.75">rotations there are several rotation types that we have been a couple user an example</r>
<r t="1202.31">of a compact representation rotation comprised of three orthogonal rotations</r>
<r t="1208.79">and quaternions or another format it's an encoding of an axis workstation and they have</r>
<r t="1214.47">the nice property being able to interpolate really smoothly between the have the pros and</r>
<r t="1219.91">cons and but especially with quaternions</r>
<r t="1224.15">they're pretty some pretty fancy matt's behind the it's not</r>
<r t="1229.34">every time you need</r>
<r t="1233.08">and colour utilities so being able to convert from rgb take you saturation like two</r>
<r t="1238.78">spaces</r>
<r t="1239.99">other</r>
<r t="1244.81">which i just snippets this is the way that we experienced the programmable parts of</r>
<r t="1249.24">the program will parts of the gpu</r>
<r t="1254.72">this</r>
<r t="1256.31">this design say that you can have multiple components contribute into the i roll processing</r>
<r t="1262.76">of geometry and it so cooperating within one framework so</r>
<r t="1269.98">the way this works is that we have this idea that points in apart line</r>
<r t="1273.88">so examples would be vertex processing stage where you wanna be able to</r>
<r t="1279">make some it's you want to build on the people processing of probable it but</r>
<r t="1283">introduce some additional transformations for example you can provide a small snippet of code which</r>
<r t="1289.82">is using the G L of cell shading language to insert into one of these</r>
<r t="1295.2">have points in a can either replace that whole</r>
<r t="1298.73">section replace any people processing</r>
<r t="1302.52">or complete and or pen so that it can cooperate without science</r>
<r t="1307.11">and similarly for fractal processing like and set to</r>
<r t="1312.29">and that supplied to</r>
<r t="1316.66">and looking up textures and there are</r>
<r t="1318.96">places as well</r>
<r t="1323.75">clipping lots of applications once we have to restrict</r>
<r t="1327.47">the range where they want to restrict where the influence of drawing within the frame</r>
<r t="1334.49">buffer</r>
<r t="1335.79">to a certain to D regions and</r>
<r t="1339.97">so if in cover you can click to ask align rectangles transform rectangles this interactive</r>
<r t="1346.34">a battery primitives to D pass describe with fancy is awesome lines</r>
<r t="1353.03">and similar to the matrix that we consider the you have seen rockies cases where</r>
<r t="1357.82">you want to be able to start these on top of each other is interesting</r>
<r t="1361.47">trough and effectively region is the intersection of all of that is the company push</r>
<r t="1368.25">regions</r>
<r t="1373.73">rectangle patching especially when it comes to user interface is a currently very dependent on</r>
<r t="1381.61">using tech should rectangles as the</r>
<r t="1386.38">so building block of most interfaces and because gpus are not really very effective a</r>
<r t="1392.75">practising very tiny primitives one of time just to send a couple of triangles for</r>
<r t="1397.87">what within separate draw close is</r>
<r t="1400.99">is not and make good utilisation of the of the G your hardware</r>
<r t="1406.77">so it</r>
<r t="1407.76">with this there is the if you well within certain limitations i for instance with</r>
<r t="1412.64">if you little your textures into atlas textures</r>
<r t="1417.76">so they can all be referenced as part of one two like one month one</r>
<r t="1422.68">primitive</r>
<r t="1424.19">and if you limit yourself to certain types of clipping then in a lot of</r>
<r t="1428.24">cases actually couple can batch almost like whole scenes of rectangles into a single goal</r>
<r t="1435.89">cools</r>
<r t="1438.1">it's quite useful</r>
<r t="1442.25">so don't have a bunch of optional sup libraries that come with problem as well</r>
<r t="1446.58">i mean for instance we have come up anger which enables us to rend text</r>
<r t="1452.91">laid out with that anger make you know i</r>
<r t="1455.4">we have hope a which provide a test like to have a teapot so describing</r>
<r t="1461.17">shakes with bessie is lines and curves and being able to get a retains object</r>
<r t="1466.73">representing that estimation of that and being able to redraw that without incurring repeated incurring</r>
<r t="1472.53">the cost a test selecting that geometry</r>
<r t="1475.61">how would you nist two thousand is to</r>
<r t="1478.09">easily integrate a just</r>
<r t="1480.62">regular gas to carried into the a couple application and managing the state</r>
<r t="1487.27">between nice</r>
<r t="1488.48">to it you know it's</r>
<r t="1490.59">i would use T is a recent addition which i i'm speedier integration</r>
<r t="1496.05">so couple based on the G stream a framework</r>
<r t="1502.27">so now ago three some of the much more recent things that we've been developing</r>
<r t="1506.58">just say you know idea of where the focus is a and where it's going</r>
<r t="1512.29">so that's the yes i thanks to find a at the beginning of this year</r>
<r t="1518.34">we introduced a couple frame info right you know i</r>
<r t="1521.97">and it's this is about being up to get asynchronously extra information about frame is</r>
<r t="1528.24">completed so for instance when we went to remove</r>
<r t="1532.12">also possible frame of the impostor to be displayed</r>
<r t="1536.08">and it takes some time before that can post a response and gets that frame</r>
<r t="1540.52">actually displayed on to the monitor and we'd like to know too well what's the</r>
<r t="1545.11">time stamp when that really hit the display and get that but we have location</r>
<r t="1549.38">so that it can be a bit smarter about our rest is animations</r>
<r t="1553.7">based on the prediction or when that frame is really gonna hit the physical display</r>
<r t="1559.28">see you have these</r>
<r t="1563.19">i think</r>
<r t="1565.27">thanks to kind of stay in for contributing offence compensate pi two call this allows</r>
<r t="1573.06">us to insert marcus into the come on stream that was sending to the G</r>
<r t="1578.14">P A</r>
<r t="1579.62">so that we can have a bunch of what that we're interested in knowing when</r>
<r t="1583.35">the G is finish processing this way</r>
<r t="1586">since when that work is finished then we can get a call back into the</r>
<r t="1590.14">application to be able to</r>
<r t="1592.23">i respond to that and the use case they had this was for video integration</r>
<r t="1596.94">where they wanted to be have to make sure that</r>
<r t="1599.95">but the gpu had finish any something the need to do a certain textures before</r>
<r t="1606.99">was handed back to the video decoder library to avoid conflict</r>
<r t="1615.6">thanks to i mean a man a lot of one of the interns so we've</r>
<r t="1620.15">been working with recently and saxony a lot that's the supporting i'll at this work</r>
<r t="1627.42">for G S T</r>
<r t="1630.07">on speedier integration to couple and it's it works</r>
<r t="1634.78">particular well with to pay particular attention to making sure that it works nicely with</r>
<r t="1640.11">the state i the eyes and with multi texturing side it is a lot of</r>
<r t="1645.1">freedom to</r>
<r t="1647.68">i will all kinds of your own custom affects and things that will be involved</r>
<r t="1654.37">in a rendering of a video frame so if you wanted to do from processing</r>
<r t="1659.2">like be saturating contrast brightness that kind of thing and trade is you don't wanna</r>
<r t="1664.81">have intimated rents we listing so you need a cooperative system to allow you to</r>
<r t="1669.08">combine these effects</r>
<r t="1670.61">one</r>
<r t="1675.9">and as you have the use cases this was for project called break sure</r>
<r t="1681.68">mention that</r>
<r t="1685.78">so what you have is</r>
<r t="1687.96">another thing that were exploring at the moment there's a project that where this using</r>
<r t="1692.62">couple that i'm working on who rate which is i you are rendering engine and</r>
<r t="1700.12">provides interactive tooling for designers for improving the web design where were exploring more advanced</r>
<r t="1708.49">uses of the G P are in the context if you i development and it's</r>
<r t="1712.86">we're interested in supporting a number of homes and even we're interested in exploring supporting</r>
<r t="1721.21">web applications</r>
<r t="1723.04">it's an expiration price my remember where i will be possible and okay</r>
<r t="1729.64">so what's next</r>
<r t="1732.73">so something that i always stripe in the way that</r>
<r t="1738.65">in terms of maintaining the project and driving a project for this is ensuring that</r>
<r t="1743.8">the feature what we develop</r>
<r t="1747.35">it's really driven by the projects work the requirements of projects are actually using so</r>
<r t="1752.96">we don't wanna be planning architecture astronauts just coming up with fun stuff like that</r>
<r t="1757.8">we wanna actually have a reason why we develop any particular feature so the ounce</r>
<r t="1762.11">really this question is to consider the people using the cover like my</r>
<r t="1769.58">the for new uses a couple will take it and you directions</r>
<r t="1774.92">so some of the current users a couple that implements it</r>
<r t="1779.82">we have a lot to obviously are the do the first user couple</r>
<r t="1785.05">and it's even today the that's a influencing certain things for instance the high dpi</r>
<r t="1791.33">stuff so i guess they will need to make some small changes to the called</r>
<r t="1795.75">tango at are to consider a</r>
<r t="1799.85">the size of clips that we tool</r>
<r t="1803.82">but there is a special use case of a couple especially when we consider the</r>
<r t="1808.73">recent web two wraps</r>
<r t="1810.32">name show that way to support and i'm show</r>
<r t="1814">and that the bonds a bunch of the feature well as well in kabul</r>
<r t="1819.93">well who is not something i'm working on activity at the moment but it so</r>
<r t="1824.28">i wanted to mention it just because i did put quite a bit of work</r>
<r t="1827.84">into this a few years ago and it was an interesting project it really do</r>
<r t="1832.27">that should drive quite a lot of</r>
<r t="1834.57">thank you think over the time</r>
<r t="1836.66">and this was adding a gpu acceleration back into card was taking a different approach</r>
<r t="1841.38">to carry G L and are generally have said making some different tradeoffs</r>
<r t="1847.06">but it did some interesting things to do if retaining the translations of parts and</r>
<r t="1852.94">trying to be a little bit okay well about using the fix function possibly gpu</r>
<r t="1857.54">for gradients and</r>
<r t="1858.83">the be a bit more efficient</r>
<r t="1863.15">i would say much about you best "'cause" i guess not many people here about</r>
<r t="1866.48">that but you know robert's writer back and for E best the</r>
<r t="1873.29">i</r>
<r t="1874.87">this is like a couple years ago we played around this is yet not really</r>
<r t="1878.47">got serious use case but it was interesting the time because and there's actually some</r>
<r t="1883.9">slightly nifty things that you best dates to do with matching actually which we were</r>
<r t="1889.25">interested</r>
<r t="1891.79">"'cause"</r>
<r t="1893.25">so</r>
<r t="1894.41">and so a much more recent projects that working on this week which i mentioned</r>
<r t="1900.68">just briefly it's a okay and i don't hide for this project to be quite</r>
<r t="1904.94">a big driver a couple going forward actually</r>
<r t="1909.73">that mission here is to really explore in the context of user interface development how</r>
<r t="1915.75">we can use more features of the G U and how we can also optimized</r>
<r t="1920.27">the web fly between design is prototyping but at the moment without many constraints this</r>
<r t="1928.53">to the technology used in the end and</r>
<r t="1933.02">creating interactive tools</r>
<r t="1936.54">the hell optimize are what are even connecting we to sort of devices i network</r>
<r t="1941.91">and such</r>
<r t="1942.64">things</r>
<r t="1943.88">and</r>
<r t="1945.43">so</r>
<r t="1946.55">right about that</r>
<r t="1948.03">big driver</r>
<r t="1951.04">so those of the project striving that's night it sort of update for the projects</r>
<r t="1957.82">and so i'm entrance it's in it if anyone's interested in this kind of thing</r>
<r t="1963.89">graphics processing and it's especially a</r>
<r t="1968.4">why and this audience in the context of user interface development</r>
<r t="1974.22">i'd love to invite people to learn more about the G P A</r>
<r t="1979.81">and contribute to call i've either directly or through downstream projects</r>
<r t="1985.72">and creating a more that downstream projects and we</r>
<r t="1990.56">we called wants</r>
<r t="1992.14">so join us about join the mailing list get involved in discussions during this and</r>
<r t="1997.45">i have see we</r>
<r t="1999.29">created a channel for call dedicate the corpus the other day about time really just</r>
<r t="2004.04">the program</r>
<r t="2008.24">trying to send a message on again off together and say for us on better</r>
<r t="2011.99">if you just want to i project and there's a website now</r>
<r t="2016.86">find what you what you will we we're gonna probably try and i mean it</r>
<r t="2020.45">but the labour office i dare easy</r>
<r t="2024.69">which will time</r>
<r t="2026.3">nine what to make it as easy as possible</r>
<r t="2033.53">so</r>
<r t="2035.14">that i'm sorry</r>
<r t="2036.51">any questions</r>
<r t="2046.83">gonna task</r>
<r t="2049.08">the this building</r>
<r t="2059.23">what this piece to me</r>
<r t="2062.96">well are you use the</r>
<r t="2066.12">even if you're using name show the patching that it provides a would make it</r>
<r t="2071.94">more question</r>
<r t="2073.44">it's gonna you to better</r>
<r t="2079.67">any if they have</r>
<r t="2081.28">that's really might want to use it i mean talk to provide the facts for</r>
<r t="2084.32">example to be saturate colours and if any of those we use</r>
<r t="2092.45">single that</r>
<r t="2094.45">so those changes all search about we don't need to do anything on top of</r>
<r t="2099.64">it to reduce power consumption for example</r>
<r t="2102.83">well it</r>
<r t="2103.86">it's is a magical you know</r>
<r t="2106.71">well there's a</r>
<r t="2108.22">there's a lot that went into</r>
<r t="2111.03">the patching for instance which is the main thing i guess that</r>
<r t="2115.65">think things like mention anything using that's are gonna take advantage of there's quite a</r>
<r t="2121.07">few things that need to come together to make that works not just having support</r>
<r t="2124.61">a that's textures that so</r>
<r t="2126.35">whole bunch of hassle to support other stuff like being able to expand from i</r>
<r t="2131.23">have a an embedded open G L E S device and it only supports non</r>
<r t="2135.02">power to text is a and there's tons of gpus arnie support that kind of</r>
<r t="2139.84">limited</r>
<r t="2140.74">actually a pretty so we have a high level textures in couple where we can</r>
<r t="2146.38">slide sections that when you have limited hardware so that you don't have to care</r>
<r t="2150.98">about that because the you i just want to draw rectangles with images that have</r>
<r t="2155.75">a battery sizes and not have to figure out how to slice that stuff up</r>
<r t="2161.05">to be of the map to some</r>
<r t="2164.06">limited hard website</r>
<r t="2166.06">it's quite a few things that</r>
<r t="2168.59">really make job</r>
<r t="2170.48">something like show</r>
<r t="2172.92">easier</r>
<r t="2175.03">does also help a lot with the stuff like video</r>
<r t="2179.58">i feel like that</r>
<r t="2181.76">well the code you see stuff is actually gonna be used but not the G</r>
<r t="2185.96">S T a line also data that so if you're using that then it would</r>
<r t="2192.21">be involved in video right it's also gonna and a bunch of things now they're</r>
<r t="2196.31">not the G S T could never do we always which it is</r>
<r t="2200.26">no we didn't really think you very carefully what we originally right</r>
<r t="2205.09">okay so especially that idea of being able to come should be have multiple components</r>
<r t="2210.88">contributed effects videos that at the moment there is no cooperative system to allow so</r>
<r t="2217.42">you</r>
<r t="2218.23">different G stream elements to contribute to that right</r>
<r t="2221.98">for video tape or something like cheese that might want to start a bunch of</r>
<r t="2225.8">affects together you at them i mean you'd be doing that by accumulating multiple ranges</r>
<r t="2233.3">to trying to you</r>
<r t="2234.76">those kinds affects a certain form of power efficiency point to be if you want</r>
<r t="2238.26">to have multiple of facts about the video did not make a big difference and</r>
<r t="2241.81">that's just the right way to do it it's just that without co operative system</r>
<r t="2245.39">for prime contracts</r>
<r t="2246.77">that's a difficult problem</r>
<r t="2250.7">so it is a nice one it's a recent development the logistic stuff we needed</r>
<r t="2254.71">to be have to support video effect</r>
<r t="2256.99">and rate</r>
<r t="2260.07">i think that'll be interesting to see if people to pick up</r>
<r t="2271.21">and</r>
</data>
