0:00:10 | say hi everybody thanks a lot for coming on to my talk about global |
---|
0:00:15 | so i'm robert right guy work for intel open source technology centre on the kind |
---|
0:00:21 | maintainer of the whole project |
---|
0:00:33 | so for those are not familiar with probably it's other consoles gpu graphics library originally |
---|
0:00:40 | created for the cluster projects they are these days as a standalone project |
---|
0:00:45 | it was created to deal with the possibility across different versions of opengl so course |
---|
0:00:52 | opengl yes opengl and even experimentally a bit these days with the web you know |
---|
0:00:59 | it's is so dealing with portability across operating systems |
---|
0:01:05 | one of the differences with some other graphics if you refuse are base is that |
---|
0:01:10 | initially when we created it we were interested in supporting more multiple sort of orthogonal |
---|
0:01:16 | components being of the contribute to the graphics rendering in a way that didn't trampling |
---|
0:01:22 | each other's us take tracking |
---|
0:01:30 | so in a still come hoping to go through first a run through of how |
---|
0:01:35 | we submit and process geometry with a gpu and when the something out |
---|
0:01:42 | and i want to then give |
---|
0:01:46 | an overview of the utilities in the couple library that try to make it really |
---|
0:01:50 | practical for writing graphics applications |
---|
0:01:55 | be on just access to the G P your hardware and then talk about some |
---|
0:02:00 | of the specific things we've been developing more recently just say that people get some |
---|
0:02:04 | insight to how the project is actually developing |
---|
0:02:11 | so first so wanna talk about |
---|
0:02:14 | basically the lowest level api even in cover which most closely matches have a gpu |
---|
0:02:19 | process is data |
---|
0:02:21 | i'm kind of personally interested in trying to expose more people to understand have a |
---|
0:02:28 | gpu itself works especially in the context of user interface development where i think we |
---|
0:02:34 | try to be on the utilise the flexibility of this hardware |
---|
0:02:39 | and the state-of-the-art for you are is today this is quite basic in comparison to |
---|
0:02:46 | you can see to sort of game developers and how successful they are using this |
---|
0:02:50 | hardware with many of this and that kind of constraints is us with |
---|
0:02:54 | interactivity and real time graphics |
---|
0:02:57 | so |
---|
0:03:01 | anyway the first thing that any applications gonna have to do they're gonna use google |
---|
0:03:04 | to draw something are with the G here is great and of the cobble context |
---|
0:03:08 | this is gonna just you could cool context news is gonna create your sandbox for |
---|
0:03:13 | all the data the call was gonna need to track for your application |
---|
0:03:18 | so then we're gonna need to create a so it's a destination for what we |
---|
0:03:21 | draw remove are rendering this is called a frame buffer |
---|
0:03:24 | a frame buffer is a collection of to debug is |
---|
0:03:28 | the but we care the most about is the colour buffer and that's where we're |
---|
0:03:32 | gonna store the results visually of what we're drawing but a frame of mind also |
---|
0:03:36 | contain other ancillary about this so that are is |
---|
0:03:41 | for accumulating the depth of the geometry that is used during this that we have |
---|
0:03:47 | to see so you know these guys |
---|
0:03:52 | in probably create a frame buffer you can you can great and on screen frame |
---|
0:03:56 | buffer that would be visual to a visible to use of coding got one screen |
---|
0:04:00 | you with the size alternative you would create an offscreen frame buffer by creating a |
---|
0:04:04 | text you have with a given size and then you would rat that texture with |
---|
0:04:09 | as an offscreen frame buffer |
---|
0:04:13 | so if we have a destination that's where we're gonna store results then we need |
---|
0:04:17 | some data that we're gonna process with the G P A and how does a |
---|
0:04:21 | gpu except data |
---|
0:04:23 | so |
---|
0:04:25 | and gpus |
---|
0:04:28 | also actually the is so the thirty forms of data so we i think |
---|
0:04:38 | so |
---|
0:04:43 | the in cover we support lighting image data have for |
---|
0:04:51 | sorry |
---|
0:05:00 | in the order |
---|
0:05:02 | and image it's a as a form of a so that we would expect we |
---|
0:05:06 | have person a gpu be on search german tree and it's a in probably support |
---|
0:05:12 | lighting textures on the from finals from afar name or from about four with a |
---|
0:05:20 | given size that and by sending data on that texture us one is being up |
---|
0:05:29 | to images into a larger at this of images a |
---|
0:05:38 | and it's often useful to be able to |
---|
0:05:42 | how can we just again as a high level protection the way you often it |
---|
0:05:45 | is a compact and to be have the packs more images into a larger images |
---|
0:05:49 | to avoid state changes and another form of textures the gpus process of pictures great |
---|
0:05:56 | from when your system resources such as X eleven expects or while and |
---|
0:06:06 | i'm sorry the older this |
---|
0:06:16 | okay |
---|
0:06:19 | it's just that |
---|
0:06:20 | the left and right click it doesn't very this is a real andreas breaks the |
---|
0:06:24 | slide down to the sections which of vertical sections like this pressing that right skip |
---|
0:06:30 | saver |
---|
0:06:31 | pretty big chunk that so which |
---|
0:06:33 | so about a so this'll spree this slightly better slide talk a week or two |
---|
0:06:39 | meeting date to the G P so depressing we need we have to do is |
---|
0:06:42 | the actual geometry into the G P A so first we need to actually understand |
---|
0:06:46 | what they to the G P processes and that is geometry which is test selected |
---|
0:06:51 | from triangles is the primary form in which we price estate on the G P |
---|
0:06:56 | A so you |
---|
0:06:58 | to understand |
---|
0:07:01 | you have the how we describe astrology the next thing to understand that's a this |
---|
0:07:06 | up about that is the stuff like just jump ahead at and sorry about that |
---|
0:07:10 | but we're gonna fast go through explaining how the geometries this but apologies and |
---|
0:07:17 | so the way we describe it geometries might tell is german treaters trying plated from |
---|
0:07:24 | attempt to assign different triangles and there's triangles themselves made of that but to cease |
---|
0:07:29 | and that is that sees are themselves components of what are called attributes |
---|
0:07:35 | so examples of attributes he would be so positions for each vertex in a triangle |
---|
0:07:40 | so you would have a position |
---|
0:07:43 | which could be a coordinate two D or three D coordinate reach but text in |
---|
0:07:48 | that geometry or it might be a colour for each vertex in the geometry or |
---|
0:07:55 | it might be i |
---|
0:07:57 | a texture coordinate that would could be at to detect record there |
---|
0:08:01 | it is the mapping a specific subregion of an image that is a don't you |
---|
0:08:05 | there's a lot of flexibility in the gpus to what data you can associate with |
---|
0:08:10 | about season your geometry and these are just very the examples but it's you can |
---|
0:08:16 | have all of the cost and data so i see the outcome actually |
---|
0:08:20 | but they don't you can also have many different apologies so tip about apologies would |
---|
0:08:24 | be that you have a triangle list which is where you would have |
---|
0:08:28 | so i sets of three but the sees which represent completely disjoint and disconnected triangles |
---|
0:08:36 | or you might have a strip of triangles and that would be you divide your |
---|
0:08:40 | first set of three but sees feel first triangle and then one additional verdict is |
---|
0:08:45 | gonna connect to the last two that sees of your script to make one more |
---|
0:08:48 | triangle and so one more vertex connects the last event these answers a more data |
---|
0:08:53 | efficient way of describing some geometry than with the less if that's applicable to your |
---|
0:08:58 | which on your trying to describe and last example would be a band where you |
---|
0:09:03 | just have a single but clicks in the centre and then the rest of the |
---|
0:09:06 | triangles gonna spend a lot of that |
---|
0:09:08 | and that's and one |
---|
0:09:15 | so how do we actually described estate using the called I P I |
---|
0:09:21 | so the first thing we're gonna do is describe |
---|
0:09:23 | decide what kind of data we want to associate with the each of those matrices |
---|
0:09:28 | there is some different strategies as to how you present estate to the G P |
---|
0:09:32 | so i'm just gonna give you one very typical like how we would do this |
---|
0:09:37 | so |
---|
0:09:39 | we decide that we wanna have a position the colour and texture gordon associated with |
---|
0:09:43 | each vertex in our geometry we're gonna create a since even greater about six am |
---|
0:09:48 | i-vector extractor in this case and it has a position it has two components of |
---|
0:09:54 | the position X and Y coordinates into D and there of type fly we're gonna |
---|
0:10:00 | have full components of the colour but we implement out for a and each of |
---|
0:10:04 | those is a by a number gonna have two components protect recording it and those |
---|
0:10:08 | are touch like nist one |
---|
0:10:11 | and |
---|
0:10:13 | this but what about an this is just that we've taken on my vertex struck |
---|
0:10:17 | which is a vertex i'm with declaring an array of these and we're gonna plot |
---|
0:10:21 | out we've got three about sees for one triangle and with plotting out the positions |
---|
0:10:26 | of the but sees giving each method the colour and where specifying the texture coordinates |
---|
0:10:32 | you |
---|
0:10:35 | so we nine to up like that data to the gpus able to read and |
---|
0:10:39 | prices that and that's just a case of uploading into a cover that should be |
---|
0:10:42 | but we do that by coding a battery but when you repulsed in the size |
---|
0:10:47 | of the data that we want to apply time we pass in the actual point |
---|
0:10:50 | to the data |
---|
0:10:52 | and that's gonna give us a reference to about |
---|
0:10:56 | the next thing is that we're going to have to describe the G P or |
---|
0:11:01 | how is it that it can what we got data needs to know that i |
---|
0:11:04 | have to that data so it's right three the but sees to process it |
---|
0:11:09 | and so if we reach out to be we need to create a cover that |
---|
0:11:14 | should be and we go global attribute new and we're gonna pass in a reference |
---|
0:11:18 | to the buffer which is a date there are actually so we do we declared |
---|
0:11:22 | and we're gonna give each attribute and nine we're gonna specify what is this be |
---|
0:11:28 | and the number of bytes that we need to step to be have to move |
---|
0:11:31 | from the best the text of the second but sex and so on |
---|
0:11:35 | and then we're gonna need to specify what's the offset from the beginning of the |
---|
0:11:38 | buffer whether gpus gonna start reading for that should be here to |
---|
0:11:43 | process that data |
---|
0:11:45 | lastly we need to specify the number of compared to data have you have to |
---|
0:11:48 | take |
---|
0:11:51 | like two components |
---|
0:11:55 | so assuming we do the same thing for the colour and texture coordinates we have |
---|
0:11:59 | for batch we recovered attributes now |
---|
0:12:03 | we can now define one or more primitives |
---|
0:12:06 | the referring to that should be right so |
---|
0:12:09 | so at this point this is where we specify the actual topology that we want |
---|
0:12:13 | to that we wanna gpu to use to interpret that data so lists triangle friends |
---|
0:12:18 | trips or whatever |
---|
0:12:20 | so with the funny primitive here way because it's just a single triangle that apologies |
---|
0:12:25 | pretty meaningless so we specify that there are three but sees the belong to this |
---|
0:12:30 | specific primitive |
---|
0:12:33 | and then we specifying the actual attributes the belong to this primitive and in this |
---|
0:12:37 | case we using this of our function takes a know to make the list of |
---|
0:12:42 | that should be says |
---|
0:12:49 | so the |
---|
0:12:52 | other thing that gpus comprises besides the john geometric data that i just described that |
---|
0:12:58 | is that they can also still image data as textures citizen where we were a |
---|
0:13:03 | bit outflow of their own and i started going through |
---|
0:13:08 | how in cover we can like text data so we have we can let them |
---|
0:13:12 | from files we can load a texture just as an empty but and fill out |
---|
0:13:18 | from the C P with the point to we can also create these textures which |
---|
0:13:22 | are cool data structures like an example of a high level texture the pose able |
---|
0:13:26 | there are numbered if i don't use |
---|
0:13:28 | but it's sometimes useful for this band of packing images one texture |
---|
0:13:34 | to avoid |
---|
0:13:36 | like a changes for |
---|
0:13:39 | you are use cases |
---|
0:13:42 | and might these pictures from when the system resources |
---|
0:13:47 | what is |
---|
0:13:48 | and |
---|
0:13:52 | so we probably talk we put off right but what we're gonna store results with |
---|
0:13:56 | what our data which is these triangles and images as textures so now we need |
---|
0:14:01 | to figure out how to describe the pipeline by which this is all gonna be |
---|
0:14:05 | processed |
---|
0:14:10 | so i'm gonna give a really sky high level view of any it example of |
---|
0:14:16 | how you can configure gpu pipeline to process data of modern T is pretty don |
---|
0:14:21 | flexible and they're a number of stages a cut optional state is really but that |
---|
0:14:28 | i'm not representativeness example but it is still a very typical a common example is |
---|
0:14:34 | for is this technology |
---|
0:14:37 | they're gonna start with our geometry we coming in on the left |
---|
0:14:41 | and we're gonna bust going to this but expressing stage in this stage we're gonna |
---|
0:14:47 | transform a german three we're gonna scale it rotated translated we're gonna projected so that |
---|
0:14:53 | points at a button away from the origin are gonna attenuate towards vanishing point to |
---|
0:14:58 | the |
---|
0:14:59 | realistic |
---|
0:15:01 | and at the end of the stage all about german tree is gonna be transformed |
---|
0:15:04 | into the coordinate space about frame but |
---|
0:15:08 | and it's conceptually a range within a scene of other geometry |
---|
0:15:14 | bands |
---|
0:15:16 | the next stage after that is the frogman processing stage in the G P is |
---|
0:15:20 | gonna go through each of the triangles in our geometry and it's gonna i would |
---|
0:15:24 | like that with the pixel grid about frame buffer in it's gonna consider for each |
---|
0:15:28 | pixel where the centre of the |
---|
0:15:31 | what's called a fragment where that is within the bounds of that triangle then it's |
---|
0:15:35 | gonna run a program to basically calculate colour for that fragment at this point when |
---|
0:15:40 | you're calculating not colour |
---|
0:15:42 | you can but that's of those textures the we floated |
---|
0:15:46 | and |
---|
0:15:47 | also the coolness of each triangle where we have those attribute values coming in there |
---|
0:15:52 | is can be interpolated say that for every intermediate fragment network processing we have interpolated |
---|
0:15:59 | attribute values to contradict |
---|
0:16:02 | program |
---|
0:16:04 | so in the final step |
---|
0:16:06 | we take all of those fragments and we know need to humanise there is onto |
---|
0:16:10 | the existing contents of the frame buffer |
---|
0:16:13 | to build up a whole scene and it this point we might also be reading |
---|
0:16:18 | back insisting colours in a frame buffer to be able to say if the effect |
---|
0:16:21 | of transparency by combining in coming |
---|
0:16:24 | destination ones |
---|
0:16:27 | and so the buttons wasting the from present processing state is there is programmable stage |
---|
0:16:32 | is very flexible the planning stages tends to what is a much more limited functionality |
---|
0:16:39 | done and fix function of us still a can lay down do that stuff |
---|
0:16:44 | and |
---|
0:16:45 | and the well in which the actually the hardware prices this is very paralysed there |
---|
0:16:53 | is if you have a primitive without one for triangles coming and there's not really |
---|
0:16:57 | any bordering guarantees as to have a gpus gonna price essays triangles |
---|
0:17:01 | and it's gonna be doing lots of geometry the same time and similar with a |
---|
0:17:06 | fragment processing the order exact order in which is gonna priceless fact is not something |
---|
0:17:11 | you get to guarantee and it's very paralysed that you will be doing |
---|
0:17:16 | sorry |
---|
0:17:18 | so kind of have a gpu prices to state a high level and |
---|
0:17:24 | i don't have the time to explain lots of examples of using the cover if |
---|
0:17:29 | you have to describe a |
---|
0:17:31 | variations on configuring E D U but just to introduce you to the couple plot |
---|
0:17:36 | line object which represents that whole processing part by the G P A |
---|
0:17:42 | and we can create a peaceful pipeline by conical pipeline you |
---|
0:17:48 | and to just give one example thing of for figuring it where we are introducing |
---|
0:17:53 | a texture into that pricing but we're gonna associated texture with what's known as an |
---|
0:17:58 | idea and this idea of layers use during the fragment pricing stage where they can |
---|
0:18:03 | be combined and |
---|
0:18:04 | us associating attention with layers there of that |
---|
0:18:12 | so basically now we have all of the bits that it takes to actually draw |
---|
0:18:16 | something a process similar gpu i'll just mention frame buffer of data a primitive we |
---|
0:18:20 | got a processing pipeline we can call primitive draw busting the reference to that data |
---|
0:18:27 | that frame buffer and is that the choice of five line |
---|
0:18:31 | and so that's basically that's basically it but introducing datum pricing G P A and |
---|
0:18:37 | it's |
---|
0:18:38 | it is to distill as much as i got time to be able to |
---|
0:18:41 | i give you |
---|
0:18:43 | so the next thing i wanna talk about the utilities at all the whites that |
---|
0:18:47 | go beyond just that lower level access to the gpu hardware that trying to make |
---|
0:18:52 | it actually really practical to get stuff done is just basic things a little mice |
---|
0:18:57 | all graphical applications need and gonna start off by introducing the math utilities that come |
---|
0:19:05 | with bubble |
---|
0:19:07 | we have matrices api matrices of the way that we deal with describing transformations of |
---|
0:19:14 | geometry in combining those transformations |
---|
0:19:17 | just essential stuff really matrix not build on top of that capability and kate to |
---|
0:19:25 | the number of applications that want to organise that the geometry into seeing profs |
---|
0:19:30 | so it's very common that you want to basically start these transformations together is interested |
---|
0:19:37 | in seeing trough pushing them onto the stack "'em" popping them as you move around |
---|
0:19:40 | the scene rough and this can say you re accumulating lots of transformations about this |
---|
0:19:46 | is the on changing i frequency |
---|
0:19:49 | and that is it just |
---|
0:19:51 | you know use of all kinds of things the next can be to have a |
---|
0:19:54 | you know it's on and dealing with that is |
---|
0:19:56 | rotations there are several rotation types that we have been a couple user an example |
---|
0:20:02 | of a compact representation rotation comprised of three orthogonal rotations |
---|
0:20:08 | and quaternions or another format it's an encoding of an axis workstation and they have |
---|
0:20:14 | the nice property being able to interpolate really smoothly between the have the pros and |
---|
0:20:19 | cons and but especially with quaternions |
---|
0:20:24 | they're pretty some pretty fancy matt's behind the it's not |
---|
0:20:29 | every time you need |
---|
0:20:33 | and colour utilities so being able to convert from rgb take you saturation like two |
---|
0:20:38 | spaces |
---|
0:20:39 | other |
---|
0:20:44 | which i just snippets this is the way that we experienced the programmable parts of |
---|
0:20:49 | the program will parts of the gpu |
---|
0:20:54 | this |
---|
0:20:56 | this design say that you can have multiple components contribute into the i roll processing |
---|
0:21:02 | of geometry and it so cooperating within one framework so |
---|
0:21:09 | the way this works is that we have this idea that points in apart line |
---|
0:21:13 | so examples would be vertex processing stage where you wanna be able to |
---|
0:21:19 | make some it's you want to build on the people processing of probable it but |
---|
0:21:23 | introduce some additional transformations for example you can provide a small snippet of code which |
---|
0:21:29 | is using the G L of cell shading language to insert into one of these |
---|
0:21:35 | have points in a can either replace that whole |
---|
0:21:38 | section replace any people processing |
---|
0:21:42 | or complete and or pen so that it can cooperate without science |
---|
0:21:47 | and similarly for fractal processing like and set to |
---|
0:21:52 | and that supplied to |
---|
0:21:56 | and looking up textures and there are |
---|
0:21:58 | places as well |
---|
0:22:03 | clipping lots of applications once we have to restrict |
---|
0:22:07 | the range where they want to restrict where the influence of drawing within the frame |
---|
0:22:14 | buffer |
---|
0:22:15 | to a certain to D regions and |
---|
0:22:19 | so if in cover you can click to ask align rectangles transform rectangles this interactive |
---|
0:22:26 | a battery primitives to D pass describe with fancy is awesome lines |
---|
0:22:33 | and similar to the matrix that we consider the you have seen rockies cases where |
---|
0:22:37 | you want to be able to start these on top of each other is interesting |
---|
0:22:41 | trough and effectively region is the intersection of all of that is the company push |
---|
0:22:48 | regions |
---|
0:22:53 | rectangle patching especially when it comes to user interface is a currently very dependent on |
---|
0:23:01 | using tech should rectangles as the |
---|
0:23:06 | so building block of most interfaces and because gpus are not really very effective a |
---|
0:23:12 | practising very tiny primitives one of time just to send a couple of triangles for |
---|
0:23:17 | what within separate draw close is |
---|
0:23:20 | is not and make good utilisation of the of the G your hardware |
---|
0:23:26 | so it |
---|
0:23:27 | with this there is the if you well within certain limitations i for instance with |
---|
0:23:32 | if you little your textures into atlas textures |
---|
0:23:37 | so they can all be referenced as part of one two like one month one |
---|
0:23:42 | primitive |
---|
0:23:44 | and if you limit yourself to certain types of clipping then in a lot of |
---|
0:23:48 | cases actually couple can batch almost like whole scenes of rectangles into a single goal |
---|
0:23:55 | cools |
---|
0:23:58 | it's quite useful |
---|
0:24:02 | so don't have a bunch of optional sup libraries that come with problem as well |
---|
0:24:06 | i mean for instance we have come up anger which enables us to rend text |
---|
0:24:12 | laid out with that anger make you know i |
---|
0:24:15 | we have hope a which provide a test like to have a teapot so describing |
---|
0:24:21 | shakes with bessie is lines and curves and being able to get a retains object |
---|
0:24:26 | representing that estimation of that and being able to redraw that without incurring repeated incurring |
---|
0:24:32 | the cost a test selecting that geometry |
---|
0:24:35 | how would you nist two thousand is to |
---|
0:24:38 | easily integrate a just |
---|
0:24:40 | regular gas to carried into the a couple application and managing the state |
---|
0:24:47 | between nice |
---|
0:24:48 | to it you know it's |
---|
0:24:50 | i would use T is a recent addition which i i'm speedier integration |
---|
0:24:56 | so couple based on the G stream a framework |
---|
0:25:02 | so now ago three some of the much more recent things that we've been developing |
---|
0:25:06 | just say you know idea of where the focus is a and where it's going |
---|
0:25:12 | so that's the yes i thanks to find a at the beginning of this year |
---|
0:25:18 | we introduced a couple frame info right you know i |
---|
0:25:21 | and it's this is about being up to get asynchronously extra information about frame is |
---|
0:25:28 | completed so for instance when we went to remove |
---|
0:25:32 | also possible frame of the impostor to be displayed |
---|
0:25:36 | and it takes some time before that can post a response and gets that frame |
---|
0:25:40 | actually displayed on to the monitor and we'd like to know too well what's the |
---|
0:25:45 | time stamp when that really hit the display and get that but we have location |
---|
0:25:49 | so that it can be a bit smarter about our rest is animations |
---|
0:25:53 | based on the prediction or when that frame is really gonna hit the physical display |
---|
0:25:59 | see you have these |
---|
0:26:03 | i think |
---|
0:26:05 | thanks to kind of stay in for contributing offence compensate pi two call this allows |
---|
0:26:13 | us to insert marcus into the come on stream that was sending to the G |
---|
0:26:18 | P A |
---|
0:26:19 | so that we can have a bunch of what that we're interested in knowing when |
---|
0:26:23 | the G is finish processing this way |
---|
0:26:26 | since when that work is finished then we can get a call back into the |
---|
0:26:30 | application to be able to |
---|
0:26:32 | i respond to that and the use case they had this was for video integration |
---|
0:26:36 | where they wanted to be have to make sure that |
---|
0:26:39 | but the gpu had finish any something the need to do a certain textures before |
---|
0:26:46 | was handed back to the video decoder library to avoid conflict |
---|
0:26:55 | thanks to i mean a man a lot of one of the interns so we've |
---|
0:27:00 | been working with recently and saxony a lot that's the supporting i'll at this work |
---|
0:27:07 | for G S T |
---|
0:27:10 | on speedier integration to couple and it's it works |
---|
0:27:14 | particular well with to pay particular attention to making sure that it works nicely with |
---|
0:27:20 | the state i the eyes and with multi texturing side it is a lot of |
---|
0:27:25 | freedom to |
---|
0:27:27 | i will all kinds of your own custom affects and things that will be involved |
---|
0:27:34 | in a rendering of a video frame so if you wanted to do from processing |
---|
0:27:39 | like be saturating contrast brightness that kind of thing and trade is you don't wanna |
---|
0:27:44 | have intimated rents we listing so you need a cooperative system to allow you to |
---|
0:27:49 | combine these effects |
---|
0:27:50 | one |
---|
0:27:55 | and as you have the use cases this was for project called break sure |
---|
0:28:01 | mention that |
---|
0:28:05 | so what you have is |
---|
0:28:07 | another thing that were exploring at the moment there's a project that where this using |
---|
0:28:12 | couple that i'm working on who rate which is i you are rendering engine and |
---|
0:28:20 | provides interactive tooling for designers for improving the web design where were exploring more advanced |
---|
0:28:28 | uses of the G P are in the context if you i development and it's |
---|
0:28:32 | we're interested in supporting a number of homes and even we're interested in exploring supporting |
---|
0:28:41 | web applications |
---|
0:28:43 | it's an expiration price my remember where i will be possible and okay |
---|
0:28:49 | so what's next |
---|
0:28:52 | so something that i always stripe in the way that |
---|
0:28:58 | in terms of maintaining the project and driving a project for this is ensuring that |
---|
0:29:03 | the feature what we develop |
---|
0:29:07 | it's really driven by the projects work the requirements of projects are actually using so |
---|
0:29:12 | we don't wanna be planning architecture astronauts just coming up with fun stuff like that |
---|
0:29:17 | we wanna actually have a reason why we develop any particular feature so the ounce |
---|
0:29:22 | really this question is to consider the people using the cover like my |
---|
0:29:29 | the for new uses a couple will take it and you directions |
---|
0:29:34 | so some of the current users a couple that implements it |
---|
0:29:39 | we have a lot to obviously are the do the first user couple |
---|
0:29:45 | and it's even today the that's a influencing certain things for instance the high dpi |
---|
0:29:51 | stuff so i guess they will need to make some small changes to the called |
---|
0:29:55 | tango at are to consider a |
---|
0:29:59 | the size of clips that we tool |
---|
0:30:03 | but there is a special use case of a couple especially when we consider the |
---|
0:30:08 | recent web two wraps |
---|
0:30:10 | name show that way to support and i'm show |
---|
0:30:14 | and that the bonds a bunch of the feature well as well in kabul |
---|
0:30:19 | well who is not something i'm working on activity at the moment but it so |
---|
0:30:24 | i wanted to mention it just because i did put quite a bit of work |
---|
0:30:27 | into this a few years ago and it was an interesting project it really do |
---|
0:30:32 | that should drive quite a lot of |
---|
0:30:34 | thank you think over the time |
---|
0:30:36 | and this was adding a gpu acceleration back into card was taking a different approach |
---|
0:30:41 | to carry G L and are generally have said making some different tradeoffs |
---|
0:30:47 | but it did some interesting things to do if retaining the translations of parts and |
---|
0:30:52 | trying to be a little bit okay well about using the fix function possibly gpu |
---|
0:30:57 | for gradients and |
---|
0:30:58 | the be a bit more efficient |
---|
0:31:03 | i would say much about you best "'cause" i guess not many people here about |
---|
0:31:06 | that but you know robert's writer back and for E best the |
---|
0:31:13 | i |
---|
0:31:14 | this is like a couple years ago we played around this is yet not really |
---|
0:31:18 | got serious use case but it was interesting the time because and there's actually some |
---|
0:31:23 | slightly nifty things that you best dates to do with matching actually which we were |
---|
0:31:29 | interested |
---|
0:31:31 | "'cause" |
---|
0:31:33 | so |
---|
0:31:34 | and so a much more recent projects that working on this week which i mentioned |
---|
0:31:40 | just briefly it's a okay and i don't hide for this project to be quite |
---|
0:31:44 | a big driver a couple going forward actually |
---|
0:31:49 | that mission here is to really explore in the context of user interface development how |
---|
0:31:55 | we can use more features of the G U and how we can also optimized |
---|
0:32:00 | the web fly between design is prototyping but at the moment without many constraints this |
---|
0:32:08 | to the technology used in the end and |
---|
0:32:13 | creating interactive tools |
---|
0:32:16 | the hell optimize are what are even connecting we to sort of devices i network |
---|
0:32:21 | and such |
---|
0:32:22 | things |
---|
0:32:23 | and |
---|
0:32:25 | so |
---|
0:32:26 | right about that |
---|
0:32:28 | big driver |
---|
0:32:31 | so those of the project striving that's night it sort of update for the projects |
---|
0:32:37 | and so i'm entrance it's in it if anyone's interested in this kind of thing |
---|
0:32:43 | graphics processing and it's especially a |
---|
0:32:48 | why and this audience in the context of user interface development |
---|
0:32:54 | i'd love to invite people to learn more about the G P A |
---|
0:32:59 | and contribute to call i've either directly or through downstream projects |
---|
0:33:05 | and creating a more that downstream projects and we |
---|
0:33:10 | we called wants |
---|
0:33:12 | so join us about join the mailing list get involved in discussions during this and |
---|
0:33:17 | i have see we |
---|
0:33:19 | created a channel for call dedicate the corpus the other day about time really just |
---|
0:33:24 | the program |
---|
0:33:28 | trying to send a message on again off together and say for us on better |
---|
0:33:31 | if you just want to i project and there's a website now |
---|
0:33:36 | find what you what you will we we're gonna probably try and i mean it |
---|
0:33:40 | but the labour office i dare easy |
---|
0:33:44 | which will time |
---|
0:33:46 | nine what to make it as easy as possible |
---|
0:33:53 | so |
---|
0:33:55 | that i'm sorry |
---|
0:33:56 | any questions |
---|
0:34:06 | gonna task |
---|
0:34:09 | the this building |
---|
0:34:19 | what this piece to me |
---|
0:34:22 | well are you use the |
---|
0:34:26 | even if you're using name show the patching that it provides a would make it |
---|
0:34:31 | more question |
---|
0:34:33 | it's gonna you to better |
---|
0:34:39 | any if they have |
---|
0:34:41 | that's really might want to use it i mean talk to provide the facts for |
---|
0:34:44 | example to be saturate colours and if any of those we use |
---|
0:34:52 | single that |
---|
0:34:54 | so those changes all search about we don't need to do anything on top of |
---|
0:34:59 | it to reduce power consumption for example |
---|
0:35:02 | well it |
---|
0:35:03 | it's is a magical you know |
---|
0:35:06 | well there's a |
---|
0:35:08 | there's a lot that went into |
---|
0:35:11 | the patching for instance which is the main thing i guess that |
---|
0:35:15 | think things like mention anything using that's are gonna take advantage of there's quite a |
---|
0:35:21 | few things that need to come together to make that works not just having support |
---|
0:35:24 | a that's textures that so |
---|
0:35:26 | whole bunch of hassle to support other stuff like being able to expand from i |
---|
0:35:31 | have a an embedded open G L E S device and it only supports non |
---|
0:35:35 | power to text is a and there's tons of gpus arnie support that kind of |
---|
0:35:39 | limited |
---|
0:35:40 | actually a pretty so we have a high level textures in couple where we can |
---|
0:35:46 | slide sections that when you have limited hardware so that you don't have to care |
---|
0:35:50 | about that because the you i just want to draw rectangles with images that have |
---|
0:35:55 | a battery sizes and not have to figure out how to slice that stuff up |
---|
0:36:01 | to be of the map to some |
---|
0:36:04 | limited hard website |
---|
0:36:06 | it's quite a few things that |
---|
0:36:08 | really make job |
---|
0:36:10 | something like show |
---|
0:36:12 | easier |
---|
0:36:15 | does also help a lot with the stuff like video |
---|
0:36:19 | i feel like that |
---|
0:36:21 | well the code you see stuff is actually gonna be used but not the G |
---|
0:36:25 | S T a line also data that so if you're using that then it would |
---|
0:36:32 | be involved in video right it's also gonna and a bunch of things now they're |
---|
0:36:36 | not the G S T could never do we always which it is |
---|
0:36:40 | no we didn't really think you very carefully what we originally right |
---|
0:36:45 | okay so especially that idea of being able to come should be have multiple components |
---|
0:36:50 | contributed effects videos that at the moment there is no cooperative system to allow so |
---|
0:36:57 | you |
---|
0:36:58 | different G stream elements to contribute to that right |
---|
0:37:01 | for video tape or something like cheese that might want to start a bunch of |
---|
0:37:05 | affects together you at them i mean you'd be doing that by accumulating multiple ranges |
---|
0:37:13 | to trying to you |
---|
0:37:14 | those kinds affects a certain form of power efficiency point to be if you want |
---|
0:37:18 | to have multiple of facts about the video did not make a big difference and |
---|
0:37:21 | that's just the right way to do it it's just that without co operative system |
---|
0:37:25 | for prime contracts |
---|
0:37:26 | that's a difficult problem |
---|
0:37:30 | so it is a nice one it's a recent development the logistic stuff we needed |
---|
0:37:34 | to be have to support video effect |
---|
0:37:36 | and rate |
---|
0:37:40 | i think that'll be interesting to see if people to pick up |
---|
0:37:51 | and |
---|