Testing Kernel GFX Drivers

Video thumbnail (Frame 0) Video thumbnail (Frame 7789) Video thumbnail (Frame 20335) Video thumbnail (Frame 32881) Video thumbnail (Frame 40940) Video thumbnail (Frame 51020) Video thumbnail (Frame 61100) Video thumbnail (Frame 64707) Video thumbnail (Frame 68859) Video thumbnail (Frame 76746)
Video in TIB AV-Portal: Testing Kernel GFX Drivers

Formal Metadata

Testing Kernel GFX Drivers
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Testing Kernel GFX Drivers How to get drm/i915 off the number 1 spot on the kernel regression list ... Three years ago, the Intel kernel gfx driver infamously occupied the top spot on the regression list. This sordid state has massively improved thanks to a big effort over the past few years. This talk will detail what we've all done to achieve this. Process improvements, improvements in the driver, test-suite infrastructure and new testing techniques developed to exercise specific features will all be covered. And of course a unsparing look at what didn't work out, what still needs to be improved, and the plans for the near future won't be missing, either.
Ocean current Dataflow Greatest element Multiplication sign Patch (Unix) Device driver Set (mathematics) Branch (computer science) Shape (magazine) Statistical hypothesis testing Mathematics Latent heat Sign (mathematics) Bit rate Cuboid Traffic reporting Posterior probability Task (computing) Standard deviation Touchscreen Linear regression Cellular automaton Software developer Gender Interface (computing) Feedback Interactive television Bit Software maintenance Cartesian coordinate system Data management Wave Process (computing) Computer animation Personal digital assistant Device driver Video game Figurate number Pressure Resultant Asynchronous Transfer Mode
Suite (music) Group action Randomization Pixel Thread (computing) Computer programming Neuroinformatik Medical imaging Fluid statics Computer configuration Atomic number Error message Exception handling Touchscreen Mapping Block (periodic table) Software developer Binary code Stress (mechanics) Staff (military) Bit Process (computing) Angle Ring (mathematics) Order (biology) Figurate number Ranking Quicksort Inverter (logic gate) Spacetime Point (geometry) Patch (Unix) Connectivity (graph theory) Letterpress printing Online help Mass Event horizon Floppy disk Number Crash (computing) Bridging (networking) Energy level Data structure Computing platform Combinatorics Focus (optics) RAID Convolution Frame problem Word Software Personal digital assistant Mixed reality Device driver Pulse (signal processing) Greatest element Code State of matter Ferry Corsten Multiplication sign Plotter ACID Sheaf (mathematics) 1 (number) Set (mathematics) Mereology Test-driven development Bit rate Semiconductor memory Cuboid Software framework Extension (kinesiology) Algebra Area Linear regression Wrapper (data mining) Fitness function Variable (mathematics) Entire function Auditory masking Normal (geometry) Website Configuration space Right angle Bounded variation Resultant Row (database) Asynchronous Transfer Mode Functional (mathematics) Observational study Real number Virtual machine Theory Statistical hypothesis testing Revision control Macro (computer science) Condition number Task (computing) Boolean algebra Domain name Shift operator Validity (statistics) Boilerplate (text) Computer animation Pressure Computer worm
Point (geometry) Web page Discrete group Context awareness State of matter Code Data recovery Device driver Online help Canonical ensemble Mereology Tracing (software) Statistical hypothesis testing Wave packet Protein folding Cuboid Data structure Traffic reporting Error message Boss Corporation Touchscreen Block (periodic table) Bit System call Convolution Message passing Process (computing) Computer animation Personal digital assistant Factory (trading post) Chain Buffer solution Interrupt <Informatik> Right angle Pattern language Object (grammar) Pressure Spacetime
Regression analysis Pixel Group action State of matter Code Multiplication sign Execution unit Dynamischer Test 1 (number) Combinational logic Numbering scheme Function (mathematics) Shape (magazine) Mereology Web 2.0 Mathematics Bit rate Different (Kate Ryan album) Computer configuration Semiconductor memory Videoconferencing Cuboid Electronic visual display Software framework Data compression Stability theory Physical system Social class Area Rotation Injektivität Curve Algorithm Arm Electric generator Touchscreen Concentric Block (periodic table) Software developer Sound effect Bit Entire function Cyclic redundancy check Band matrix Proof theory Data mining Message passing Process (computing) Ring (mathematics) Buffer solution Normal (geometry) Configuration space Figurate number Reading (process) Asynchronous Transfer Mode Point (geometry) Web page Sine Electronic data interchange Link (knot theory) Datenausgabegerät Tape drive Virtual machine Device driver Mass Student's t-test Graph coloring Statistical hypothesis testing Power (physics) Frequency Deadlock String (computer science) Selectivity (electronic) Metropolitan area network Computing platform Task (computing) Pairwise comparison Standard deviation Scaling (geometry) Validity (statistics) Interface (computing) Chemical equation Debugger Boilerplate (text) Planning Frame problem Convolution Word Computer animation Personal digital assistant Logic Network topology Device driver Formal grammar Library (computing)
Level of measurement Multiplication sign Patch (Unix) Device driver Online help Canonical ensemble Mereology Convolution Statistical hypothesis testing Computer animation Personal digital assistant Logic Cuboid Right angle Macro (computer science)
Dataflow Computer file Interior (topology) INTEGRAL Patch (Unix) Branch (computer science) Mass Food energy Statistical hypothesis testing Goodness of fit Semiconductor memory Stapeldatei Gradient Debugger Bound state Bit System call Flow separation Convolution Arithmetic mean Ring (mathematics) Network topology Buffer solution Freeware Local ring
Regression analysis Pixel Presentation of a group State of matter Multiplication sign Set (mathematics) Numbering scheme Frustration Mereology Information technology consulting Semiconductor memory Electronic visual display Partial derivative Touchscreen Software developer Data storage device Arithmetic mean Process (computing) Right angle Cycle (graph theory) Writing Asynchronous Transfer Mode Point (geometry) Functional (mathematics) Patch (Unix) Virtual machine Device driver Online help Streaming media Statistical hypothesis testing Revision control Computer hardware Energy level Data structure Traffic reporting Computing platform Inheritance (object-oriented programming) Cellular automaton Weight Mathematical analysis Generic programming Cursor (computers) Convolution Software Personal digital assistant Enumerated type Device driver Speech synthesis Window Library (computing)
specifically in a little better shape almost of other and then a lecture on the containers is but 2 years I haven't given up on the job and rich work with the yeah I know which food and also to say things are produces so so daintily graphics drivers all I think that was our claim to fame for the 1st the 3 years he's we totally dominated the regression Weiss and that was for the very few people that actually will look-in of the have of the king make setting driver with all the shiny new kill mode setting stuff gender and so interview all the we made them should happen next year will be broken for I and we see that's kind and not the not the and the 1 I have said we we also continues like broach the same things again we have like the same box of again so it was like patches for told 50 passes new features in the home of 50 trying things stitched together again all the singular so we will have to be better than that on the this wounded talk about because we can end at the top anymore always nomadic at the 1st thing we stored in wave was all the have some test cases at least out a little bit of from uh the full testing more than a compulsion rate and my face realization was all this literally in the test that's worse than there test saved like this seems to be no bottom to have badly can be in that still useful for atleast needed but matter because the 1st thing we had was a bunch of hack together test applications use the like the sign genome on all nephew my Ben schmaltz hack together with item makes tests remain infrastructure and was the 1st tests we we haven't actually call box say you we've Vaticanus story and billable these things today so when the talk about today I saw 1st accounted process changes in own white friendship it have become false but the next luminaries cell I'm going to talk a little bit about the tests infrastructure that we we invented is a real the we'll kind of the the pleasing I on in 3rd the 3rd topic is talking about specific tasks techniques to fit testing can will drive the current graphics drivers the this is an awful lot of stuff all that he can go traditional you can need to have all eyes looking at the screen to see that adverse correctly because the contrastive or also the all the interactions contribute specific still flight that he had actually tend to hang a lot you need to have a reliable reset and paid test say pre which will at the fair things we dormitories our instated rolling next branch which of the light essentially the 4 main there's no merge when on i just merge passes all the time and then reading week so I they attack at all I I send out ofthere ecuted Portman actually waits for the test results and then if they say it's not totally broken I forwarded upstream today if t t to the era maintain on he integrates that except for the military of then a will 1 of the nice things is we actually used a curious feedback on was not like we got the q book report at the same time as Islamist towards was screaming at us said that's a good improves the other thing was also this there's no patch will not save because the thing is is rolling out the the court is out of my hands so if managers come around and you mean you have to integrate them back into walls sorry Standard gone already in this like the the the 1 we got the life of the q the marriage happened so that allowed in the put off a lot of pressure so that's that's kind of it the process changes we've gone the other thing was ah nowadays tests and testing is kind integral to the development process that would there was a lot of for the figure flame wars the posterior but essentially would that I require name the set of patches to get marriages if you adding a new interface a wonderful interface testing all the corner cases although will flow solver in knowledge flax checking that all that testing is going on which which helps a lot for the signing saying API hours so we
we stop being stupid things like not checking for flax and then use space a submitting random Gaubitch in these additional spare fields and so we can actually use them all it's is also often done as part of the reuse nowadays so like if someone writes a patching we can try to are teach someone else about this topic is and is not amateurs data renewed also writes and test cases kind as as a layman's screens and angles thing is all all mean the this kind of testing for the the ridiculous box that the occasional hit and and under some people you can believe and test-driven development but right test cases 1st then but that the brawl with the kernel is this so such combinatorial explosion of things that can go wrong it's an eternal tossed and also think it's a stupid idea because then people just trying to make the test cases person then think about what is being actionable so that pressure currently using is kind of book driven testing so we which I think the of base coverage of exercise the driver a new feature some somewhat on any something actually blows up the write the test case for that specific thing on I seems to be fairly did that that kind of directing the testing efforts into useful actions because you have if images this just invent things that can go wrong so it's it is much better to test would actually goes wrong in the real world the so that was kind of the 0 that the process changes all we also have the wide created that infrastructure self nowadays we use pay great a test run a frame rate which is off something amazing guys started years ago and is extremely useful for them it in his team ports paygrade will is the actual OpenGeo and C test cases there was a use that with this the Python test strongly back orders of will we use all woman reason food chasing payload besides that and everyone else and open-source graphics will can users that and it's also it also has like test run the wrappers for all kinds of order saying that the really old x test suite is a wrapper no Spencer it and hold that the of the traumas she'll conform tests we can run through things so we can use that for everything well what when I looked around the user gage freedom from Council tests promise they all kind assumed that you can write me test cases and you don't have a pile horrible C that you wanna reuse just because we have and the rent so that was kind of problem and the other thing was all the test season runners I fair and the fruit testing like software they use you know that if you write a test case it it it will always be able to wrong but we we testing hall that platform so all of the features are only very well on some kernel variations on salt on some whole their platform so we have t have skipped support because otherwise if a test case suddenly doesn't wrong you you wanna know about that as a regression so you need to track how did the skip test as the skip case are separately say anything they hold has all that because it it is always open a version of API with massive amounts of extension so it makes them and it Piglet solve has a bunch of things that you can restart test runs of the machine by that it captures the Danish grooves of the use follows a lot because we we try really hard that everything which is actually an error condition is locked this as Warner evolve In the mask and everything which is not is is actually just the bocca informal we we we have a lot of patches action that area to assume that an old friend case in the got leftovers from the evolving the ioctl can yeah spending as but it has a time support to kill long running tests leads in case the kernel happened I mean yeah if you have a massive span of holders so running especially the stress tests and some old platforms or a a some bad slow and that of SSC platforms just takes too long so we have added them for should pick a Python has worked or seems to have some conclusions of boxes of the fact that MIT to restore but then next port is up Int'l GPU tools that's where our kernel test cases actually reside 8 it's stored in in poll GPU tools because we just we use these are kind of old test development equals the mole programs and extended most of the infrastructure in their own ways in the beginning was desire for actors this basic boilerplate code at the o the pulse 1 half users so we we reinvented the row now testing framework mostly because of the reason to say that the the things are that there with time and all 2 fitting for use cases so so 1 of 1 of the big things is that the test is a pretty much just that binaries that that are on the kind of thousands of of letters escape or a successor Warner of teach to make code-sharing easier and reduce the boilerplate we have a set this fairly nasty C macros that kind given the entire test case a more decorative appearance of is example normal test is story our IGT main blocks that contains carried to Canada option forcing which integrates with with for example the bigger test runner the bigger test only ever runs 1 subtest of each binary so that we can track results separately then you have a like an IGT fiction textbook block which is only wrong if the test is is actually wrong we use that 0 I curatable Pullman users no need stop the and be able to end raids test cases all all machines which don't have into graphics so we need to block out all the the whole the set up for the test case all the things you they need of randomization because we're on the binary generates up tests and the reason for that is kind of the last thing we have a lot of combinatorial stopped tests there may be other print print formants thing which you can use it you can use to to stitch together this sub-test name from flax some other yeah some array and so we we actually need to run the test binary to get on to the west of substance and there was kind of what would be the evolved over the past year we also have a lot a set of of magic macros like the IGT require at the bottom by GG require automatically John said the subtest test the more sysopped this missile diskette there's an IGT acid which are well fails the test case if if if condition fails we also like the inverse warns air because I'm the stupidity inverted Boolean algebra so there's also skip parliament has
success on the their ass created of humanity many times when when instead of and refactoring all the test cases for that infrastructure yeah so that's there was talk about we have these map matching macros which jump out of of these these special see all blocks they also bird like if you if you like an ITU-T requiring the in the feature in the top well what's gets the entire thing if you have an IGT requirements appears it just sketch that of test which is and if you have like an IGT require in between 2 self tested it it skips everything below which is very useful because all the platforms always extend kind new features for example we have a commands emission rings on their nowadays it's like for different ranks so we just have an IGT requiring each 1 of them and that's just skip all the new ones the staff have read out how we use the thing all we also have of domain block we have simple test case block if you can either have a subtask just kills 1 9 0 1 1 shift level add the daily can a bad thing essentially it's that I should you require an IGT skip workers replied exceptions and exceptions and c means you have to use section from child so all static variables in in in function frames that contain IGT fixed arise detail soap test blocks will get scrambled by adjacency so that's kind of events that would otherwise it actually verdicts fairly the all the next phase it can help infrastructure is on king test whole person threats I it's kernel most of the books and happen if 2 things there's 3 things are a lot of things happen in parallel so we have 2 cases will miss 449 but test children and if you for the test children and the test you in has like an IGT acid but that the main threat really throws that Aichi diacetone forward so that's that's kind of the point uh behind this and then we have about and set of helpers fruitful forking background tossed of for example would be if you want to be something nasty to the system in general to you test cases in the background all we use those and then at the end of the test case just call them and will lose 2 reasons why we have that instead of all let's see has a nice race between the 4th and that's this the signal handling re racing because it captures the the paper of the process so that's kind of paper lower in these helpers it all yeah for example what would that look like what would what what's that going to look like in the test case the top there's a block well yeah or what is a set which used the nasty things for example just trash a little bit of memory and then I took the focus the real test children thing which colleagues like an open and the full so you get the number of of of processes to span gets it's like a fool from job equals 0 all until less a In this someone like I said ITT acid gets full water but in the main thread you have to wait for all the children and at the end also kill the helper n so the next thing which integrates of all that is as exit handlers as In the center of the out was all I mean we've all these process helpers we we have a lot of the Buddha FES interfaces in the kernel T counterchanged assess them we we want in on the damage for the next phase case if the testing crashes or something so we have to have access handlers which mature are wrong with that exit Lipsey infrastructure in that uh whenever new Signal happens so so that's the reason why we stumbled over there for persons race race because on we use the signal Hammerson but yeah it loose together with the for Calpers so I if you focus up threat that tried to clean up the stuff from the main thread with it will clean up all you help of processes if you forget to the death or a creche trying to beat up and is mostly used internally With this special-purpose helpers what some of the testing techniques that all all discuss later on Canada clean up internal state so that the actual test case to studies the this special thing and then forgets about it and at the end everything will get magically clean cleans up there the so school quite bit well and finally this this a lot of boring boilerplate removal spoof just spell dealing with kernel made setting is kind of boring and what 5 while all close to get out the state even just like the red what hope can as will we have helpers to train the framebuffer according to what you wish you with the these of the tall the size and all that kind of stuff will yeah also gonna help was trying to to figure out the value configuration he said they all want this connector on this plot theory that somehow our a this Python yeah give me something that words ours is the best in the log of as axes helpers because everyone lost amendments employers all spa option parsing mostly for the test suites so that the protests running can say plays role in this soap test and that all kind of magical happens a bunch of other things well so that's kind will be held in end space but we also have added in over the pulse to but below the infrastructure to the caramel forward but the testing and validation and that's all the mode said state structure of the of the present 3 times already 8 8 essentially what does is the check the whole their state we will to solve the believes that should they and their 2 years ago we had that with writing state so checking with the the VGA connector is actually connected to the right place and 2 sites over the summer mix of happened in which we don't saying and since this year we'll subtract like the entire pipe configurations state so we add more pixel that you pipelines running that is 6 bits per pixel rate and that kind of stuff all the clocks all the special things like for example this is is an idea child being reactive without pipeline bridge in my things like that all the internal clock set up is or most of internal clock said is tracked nowadays said yeah how how did we can again get there all mean the most said state checker essentially has 2 components that we need anyway we need to be able to read out the full Hall state that's left behind by the phone there by the bias of 0 false but sort of infancy must like take over the whole there are we need to pre computes the entire tired baseplates states for atomic makes sense because 1 of the things all the entire goal of atomic motor is t figure added a
new conflagrations possibly full touching the hall which can we can't they really getting there so with these the ingredients we can get the entire hold their state and we can precompute the entire hall there said if we use the same data structures for both things we can just have a little bit of code to compare those 2 things and and that's is how the state trackers simple is very little code it is will function with like a pile of Montrose that just compare uh 0 struck members essentially with so we often few if conditions for special cases and it's is pretty impressive how much pressure that gadgets like I think since we added that 2 years ago is the the the it uses a warm backtrace so that users actually notice that something went wrong and report the book because most often the screen can still would makes the whole mechanic gets along with the discrete something of something and since added that being are having we the tall factories scores point on federal air that White just the always so there's a lot of box in the canon Townsley try to fix them and then in the next release me out a little bit more states tracking or a little more complex the and then again at the the top spot for a that traces they that's called a lot of both Journal married setting corner cases in box and little things the it demand of diversity is it's just astonishing you can context at least not with the resources we have so that's kind of the internal infrastructure we have thank now consider the report Canada on special testing techniques that it the adjacency to but it on the the the graphics driver that the 1st thing is our freeways was everywhere in in in graphics carried eventually the care we need to solve for the taking and there is something means you run out of space in the the it's all active for objects and you need to make something yourself and it general you can I want to make these block at these rights interruptible so that the chief you have answered in something else is broken users can actually I kill the process which remains you can actually use signals to test all your error perhaps because pretty much in week Pringles thing every call training the kernel the and eventually ends of walking on the Takezo would is extreme well from that is that just focus 2nd help which constant the sense as signals to the first one and so constantly interrupts the kernel and that's cannot be used the the test error error path at the beginning we can that that just move x because x user signals all I and yet in for formalize that in our test is that nowadays all pretty much all the test cases which the something non-trivial have like the sop tastes what was normal 1 and the other 1 is the 1 that if all the signal helper T to be of the kernel of it no badly and another thing that we needed to you C 2 can exercise of the kernel fully as however the the diverse and all t to so playful thing because genome supposed to be faster listed to command submission part so we have an entire cascade of 3 3 forwards sometimes fallbacks balls with a false prophet can assumes that everything is there already nothing needs to be full to being and than than an entire chain a fallback pass and you can the contessa pretty easily by by giving them the kernel a point to which you know uh does have PTC acts on beaches the that played by handing it as 1 of our own buffer objects because we can we know about the lifetimes of those in the page folding behavior but the very 1st thing every every every Jan ioctl bosses like pretty fold the entire thing so we have a the that has not to disable that so that it can still reliable test all the slow path and the for lack of too slow pattern recovery especially the relocation code is extremely mad about that stuff and you have some the boxing day so more so well bucks if the of the candidate Linares tools can i hates me so said those a kind of want to avoid all another
thing which is fairly recent I was this place your sees checksums that the holder has long I guess that the the Holy guys is effort validations has ended and massive pile of of little check so a units that you can use to grab uh checksum of an entire frame at different time points and that we expertise that 3 debugger fast will little bit of logic in the kernel so you just tell tell the but 1st thing I'd like to get there this year see Jackson's forward this part this year to say of this pipeline and if figures is that i the problem with that is or what we can will of the logic is it's interrupt-driven Sony's and depending upon active concentration you need to select different half points for example on on trial of this this way forward you need to select the best player top point because the normal pipe top point is kind of disabled and the another thing we need to be there if you if you like to use this for pull pop points are displayed pull this scramble the output signal to to avoid the interference I so we we we say at the book option in the edges in this label output to disable that scrambling can drive this little in a non-standard way 2 so that we have stable frame checksums restored this grammar of the frame so essentially is supported them all outputs and platforms on on every generation is same the 10 year writing test cases with that thing those all is a bit a challenge because you can actually I mean she Alfred so we render something that you read back the pixel check red of grain you can't be dumbest C or C is the only thing you get is like this the checksum entire frames of the only thing you can there is trade frame grammar here say trade and all the frame and compare the frames so they did that equal old all so how do you suffer testing for example you you you make then the screen white and then you you renderer black curves I mean you move and will pick slaying if the if the CRC Jackson changes then you know the the curves as being this splice and it doesn't change another girl has not by will never and cost occurs among pixel road or or to nearly off and that's actually what we had or we we also want to use that for sprites for the video display kind to check whether the position correctly beginning to all the entire background frame in in a color and then stand stand out like a hole in black and then puts the video frame in the same color on top of it and if that's still the same C a C the you know the colors so same middle so perfect that and that he can check positioning precisely you can leave it won't take Sloper down the left and if it doesn't change you know that something with the scaling or so was scared off said that's what we currently running test cases for 1 it essentially allows us to test the entire came as a on live placement framebuffer pixel well yeah uh offsets and all its stuff all areas where we have nasty books and blending ones ones we get there called you moments so of and yet if before we had like these this place here since that was all things will be relied on essentially uses reporting regressions when we broke things again so now we can all test that spelling nice so yeah that's all but we can test now if the seat syntax arms what 1 thing is frame of compression which historically has been always bargaining when we use frame of compressed it was always can case readiness to screen update need just seen the old state in the compressed frame buffer and it just kept scanning out that instead of invalidating compressed frame buffer and recompressing yeah so now we have a nice test case and we actually all have proof that it's still broken by the same is up with the as missionaries high rest that display panels can power frame of compression actions and tk is saving memory bandwidth we accounts of so Mace panels especially for mobile platforms have like an old bold frame go for and the only all upload new FrameNet when at something actually changed and otherwise the panel just stand there from its own frame before and this the same problem if if you miss like a screen of base he curses never ever gonna so we have test cases for that now and again it's kind of broken I like a salve placement of curses planes sprites all that stuff rotation and mirroring that's all things that we cannot fully fully tested anatomy of Y so makes me really happy as is intended of the other thing which is something is fairly interesting as is the chief you hang man something which we actually have since 2 years now and it breaks by essentially stopping command submission to hold their so we still do all the processing we read OK all the buffers we we we fill in the ring buffer would be the taller hallway that something changed which means it looks like a tape you hang but it's not actually GPU which is the upside that there's a much higher chance that the system actions survives the recent bubble for of and at the beginning tree period kind of verdict occasionally viewable below locking but thanks to the tape you hang man we are fixed can was of books and nowadays we also have a lot of a lot of I mean at the beginning we just have like the
basic test they submit something to the hall that GPU hang activated wait until the can will notice that the whole within being anything resets the GPU and that crashed boxes and how we have bad deadlocks were locking issues in general things that wasn't properly reset nowadays we actually have like chief you hang versus something else for example we notice that if you're a cheap you hang depending page fled the actually deadlock so we have a test case for that now and the balance always effects that he node is a cave have achieved you hang on page 4 the node set pending then the deadlock again so we will of a test case for that than of fixed about material there and then the next thing was like cheap you hang versus you suspend resume again there was some bad log in there and really been playing of things properly said nowadays cheap you reason actually but it's very slow on the solve and I mean shape used or extremely high I'm happy pieces of whole there so having reliable cheap reset suppose this really important for somewhat place user experience it so that help a lot nowadays only I mean people if you wouldn't yell like crazy and that they managed to place re-poll phase and supply the state public but all other things people would actually notice that it this so long what's gonna planning the for the future 1 thing we care can really test at all or crazy output devices for example we have full k-support in the in the in the it'll try that light no has a full case the 0 maybe there's 1 developer is a full case scheme and Q has 1 machine which occasionally runs with the full case we so we have like in new task coverage at all so or over 3 support but you also have all these try or do 10 bits per pixel active support for for of professional workstation-based white panels that not all that kind of stuff what we we can test these code pass and there's a lot of software logic bales with these ap a conference in this you you see a pixel on the screen there so with things that can go wrong so the next thing go for testing techniques for me is all but I wanna be able to inject arbitrary output configurations EDI these all and kind of fake all all the thing which is outside of the connectors so that we can test a full k-support insane added EDI these the the horses can be test like that by injecting year slightly corrupted things up all the special pipe configurations stuff that we need to the 1st special displays and most of the actors we have our our fully bone pipeline so we GAO was doesn't never backchannel hdm-i there's no backchannel this play pool has warned so double carbon will work to to really fake at this point so that's going to be the 2nd step but yeah that that that will allow us to test an entire new classes of of books that in a fully automated way this also all multiplied will to display pal support this is a very big topic here the sins Ivybridge you have like 3 pipe suppose the kind of those in very very slow on the other ways you're really Gator breaking it because it's a pain to test with free this splice so 1 of the goals there is also to just in check 3 this place that is suitable for a fruitful multiply promoted by comparisions is test what is the words so that's dynamic testing technique from the the the next big thing our the other thing moram infrastructure bailing the kernel mode setting interfaces blue the real pain there's an awful lot of boilerplate code of of publication selecting like the output originally actually warm this yeah replies tons of of student boilerplate code so I hope you can now the come up with a better helpful library a interface stated to me writing test cases simpler and easier polling combination without the injection that with injection are framework stuff so that we can say of like to have the displays with that just make it happen somehow I don't k hat but you check the when you select will displace and the little thing is kind a pipe dream of mine I mean all this testing here is pretty much until online and none of the other dierent drivers can haven't even the glimpses of at a rate of test see there's a bunch of tools and things you can use to exercise features but that's all grown by developers cation way as can I actually but it's a very much as compiled so I had lost to see other people join in on the effort I mean the the entire infrastructure think is no use interlard gnostic besides that our cheaply by United is always was a standard until all but yeah if it looks like the other driver teams Canada have the manpower to actually make it happen fortunate it following yeah a bunch of links growing more useful tools for the people watching the web string but they don't you beetles represent or that the paper I think there's a reading United today which explains how to say that all this stuff together and our of block place for me 1 is can go would be of the ICT infrastructure which also has links to the I Getting Started patties instead of by the 2nd 1 kind what I expect for test cases test case Coleridge area 1 and 15
patches for those who care so summary are testing and and thinking about how we can actually validates features without blowing through tons of human time and that it is an apostle is is now really need group or define and 15 of often you chose we don't completely sock anymore of give infrastructures panicky I mean not faced writing test cases was paying now we have all these kind of matching macros
piles of IOC pull help produce all the help with things so it is much more lectures you can actually concentrate on writing a test logic and trying to understand the book which very often is an interesting learning experience because you have the book fakes and you think you understand the Pokémon you try to run a testcase notice you have no clue at all which this happened uh are shockingly often so good did infrastructure you helplessness is k luckily we can also using payment can like reuse quote from the a bigger of graphics community and the testing kernel graphics driver thing the bait considering currently and going to the future is coming up with testing techniques actually quite probably box brought run through the the the co past anyone test because of all the all the right is a lot of this stuff is just goes out there and dissipates on the canon 18 trade of the back part of path the the yeah make it possible to like for example to this place here 6 or that the GPU hang Manhattan the heian or fake it safe you hang with without killing the entire box and that kind of so questions all this and like yeah numerous ordinances the that the the yeah that's the you
mentioned GU hangs in obviously read recent energy use grade 2 as a work-around that the golden targets to evaluate you use in the 1st place right well 1 possible yeah how well the thing as on interior hang can beaches a kernel Walker we miss the that someday it at the very often it's like this the like success like sorry in user to scratch yet but the kernel noticed and and that's actually nowadays the blur the bump into the meniscus is like you take you hand and then like an entire paragraph of this could be a userspace explaining exactly where to file it so that we can officially reassigning that that was the question so I want to get rid of GPU but recently user good work around so was wondering if you had an infrastructure of means of people to recall the hang so that you can use the gave him to fix all yeah I mean it's it we have since quite a while actually I think the foliage all the at 1st bounds that particular state or at least interesting bits and pieces bunch registers did the ring buffer is an the thing we suspect was the batch Full for occasionally gets wrong I mean you can't but the entity gigabytes we don't that in the debugger 1st nowadays we don't be visible violent this is a fast and the mass tells you what yeah friendship is will be call like 16 megabytes of memory of a GPU hand happens the patents yeah we we have that and did the nesC explains to the use of wrap file go to the free desktop book so what file this book against until year-end and we get from the very beginning to talk about you constantly and Robitussin approach to next the also much French or next we do for testing on my reduces to to Howard orbitals all we're acceptable now the interesting history enhancement of or you never tested of all the the we have a bunch of 0 I have a bunch of brats patches nowadays and here is a somewhat limited so they can just wear test 1 branch so I have like my local integration tree where thing pulled together and they have like the monthly runs and is and what they have the we have what
is this a separate branch for unpatched flow for fixes all the suffixes get faster than that so no that that the next flow is for features 6 is always a
get faster than the Unabomber store them for like a month and there will you get the stable partials like then the you but I don't think the all right here we have the we have to fix so the you don't see all the patches you should get good tendency but I mean 1 thing is also because Due to the 1 with the securing on features close like 1 week before atleast 1 way before the marriage window opens which means but by the time actually have like all the crap animation which 1 of them is like these is time 1 of the things the release cycle because everyone is busy Burke fixing door people's breakage in the when reports here on and 15 bucks and the actually nowadays we don't have the many awful regressions was really about all the of France I didn't people have done a good job writing frustration isn't really that more of a comment than a question and you mentioned the other drivers in the kernel of a graphics drivers to jump in and I due to your use these testing and I want to emphasize that the cross check or that we've added to that I have 15 driver to cheque the what we think we're programmed hobbyhorses what they are actually has has just been tremendously helpful not only in getting by reports from users but it's it's super helpful for new development you know for example 5 developing some new display future or adding an AG support for new platform all that cross-checking just catches almost everything before we even get upstream so I highly encourage the other drivers to have won a similar scheme where you got a set of state that you're that you're tracking and software you you check it against what you read out from the hardware and then report any any conflicts at that point it's a it's a really of the future yeah we this state checker wider set it's essentially these 2 features false belief and comic might of that trying to make happen on upstream that attain that that little say function with which just compares the structures is is really valuable for development but the added the problem is you need the other 2 cases to make it happen if you don't pre-computed state contracted like in a separate data structures don't have anything to compare it either have or hold the readout current you yeah the other pieces by saying find the other questions yeah mentioned making the driver that this case is also a for other drivers but that that into the future as the beam which I'll assume that you have into the you never run another arrive except if you took speech to the question of the amino is securely they'll work until chip tools would not gonna write test cases for Raven or something that all this part of the allowing every own QA to run test cases or enumerate test cases on the build infrastructure reworked all the test so you can run them on any machine and the properly skip I think the most value would be in the in the kernel mode setting tests at these kind of a generic dispassion things but and I hear that raising the CC registers the cell I guess they could expose that indicate that a little stream library t to like trade frame buffers and grabs your status but we can share these tests like they have the same problem with the cursor could drop off the screen 1 pixel doing so but I think on questions the looking at at time of M weight and this is this is a key hiking on the you infrastructure of the closest levels so yes usuriousness as well that that's correct the of you it we can publish them and the desk test consultant the following year the off I mean I and tell that story but getting permission to be exposed to CUC registers was off long long fight with all the guys and I can can I'm like I mean that the thing is the I don't actually know this at
the having all the guys mostly use it with mean to have like the actual a model with with the coefficients so that they can actually check whether 1 pixel is accurate the only thing we are allowed to these like competitive friends for equal not equal so they didn't allow us to expose to see you see in the details that just like is the registered and that's also how we express it in the right of it's I think 5 the birds because that's the memories any platform ever bonds yeah Yemen usually it's last it kind strangers whether so yeah it was a long fight to get businesses introduction analysis even thank you Daniel movement and the the next presentation is going to be about in