Commit Graph

49666 Commits

Author SHA1 Message Date
John Scipione
b9590dc919 S&T: Activate S&T when only option down
and not any other modifier such as command or control or shift.

Fixes #10511

We need to be more strict here because Tracker defines Cmd+Opt+Up and
Cmd+Opt+Down shortcuts, S&T shouldn't override them.
2014-02-06 13:12:48 -05:00
Stephan Aßmus
d0477fb673 Painter: Support transformation in gradient code paths.
Clipping paths (or rather alpha masks) and affine view transformations
seem to be generally supported for all drawing operations now. There might
still be bugs that have not yet been exposed by the current set of tests.
These could be related to scrolling, origin and scale as well as stacked
view states.
2014-02-06 17:13:36 +01:00
Stephan Aßmus
e966330c99 Transformation: Added gradient test. 2014-02-06 17:13:08 +01:00
Stephan Aßmus
d091cdec92 Painter: Complete bitmap clipping and transformation
* Turn off optimized code-paths when an alpha mask is set. The generic
   path already included the alpha-mask version of the AGG pipeline.
 * Add transformation to generic bitmap rendering. (It already worked
   with a transformation, so there is no slow down compared to before,
   only now it also includes the transformation set via BView::SetTransform())
2014-02-06 16:28:45 +01:00
Stephan Aßmus
05a19d4137 Transformation: Added BBitmap test 2014-02-06 16:28:16 +01:00
Stephan Aßmus
d93591ffb4 Slightly improve Transformation test to include text 2014-02-06 11:10:05 +01:00
Stephan Aßmus
fd8ad3d807 Correctly translate view transformation...
...from local view origin to screen origin.
2014-02-06 11:10:04 +01:00
Stephan Aßmus
08e109e570 New test for transformations 2014-02-06 11:10:03 +01:00
Stephan Aßmus
b4671bebcf Regard Painter's transformation when rendering text. 2014-02-06 11:10:03 +01:00
Stephan Aßmus
750958b857 app_server: Prepare to be able to force vector glyphs...
...in everything text rendering related.
2014-02-06 11:10:02 +01:00
Alexander von Gluck IV
b41ab65bd4 x86_64: Add BootManager, writembr
* Fix build of BootManager on x86_64 (signed vs unsigned error)
* Throw in writembr as it seems to build (untested)
2014-02-05 23:25:26 -06:00
Pawel Dziepak
a96e17ba9d kernel: Adjust load tracking interval 2014-02-06 03:23:28 +01:00
Pawel Dziepak
1da76fd4cc scheduler: Inherit estimated load, do not inherit assigned core
The initial core assignment has to be done without any knowledge about
the thread behaviour. Moreover, short lived tasks may spent most of their
time executing on that initial core. This patch attempts to improve the
qualiti of that initial decision.
2014-02-06 03:23:28 +01:00
Pawel Dziepak
667b23ddc2 scheduler: Always update core heaps after thread migration
The main purpose of this patch is to eliminate the delay between thread
migration and result of that migration being visible in load statistics.
Such delay, in certain circumstances, may cause some cores to become
overloaded because the scheduler migrates too many threads to them before
the effect of migration becomes apparent.
2014-02-06 03:23:28 +01:00
Pawel Dziepak
230d1fcfea scheduler: Update load of idle cores
In order to keep the scheduler tickless core load is computed and updated
only during various scheduler events (i.e. thread enqueue, reschedule, etc).
The problem it creates is that if a core becomes idle its load may remain
outdated for an extended period of time thus resulting in suboptimal thread
migration decisions.

The solution to this problem is to add a timer each time an idle thread is
scheudled which, after kLoadMeasureInterval, would fire and force load
update.
2014-02-06 03:23:28 +01:00
Pawel Dziepak
771ae065db scheduler: Update priority penalty computation in debug dump 2014-02-06 03:23:28 +01:00
John Scipione
48fcadd44c exfat: recheck device size is big enough to hold fs
I didn't mean to omit this check, I just need to save deviceSize below for
get_default_volume_name() so that it will match the mount point name.

Checked to make sure the calculation works on a 2GiB, 32GiB, and 128GiB
(virtual) exfat volume.
2014-02-05 20:34:14 -05:00
John Scipione
3ba171a37a exfat: small correction in comment, name not _name 2014-02-05 20:30:35 -05:00
John Scipione
dae266a8a4 exfat: fix problems with hrev46820
* Set the size of the volume name member var to B_FILE_NAME_LENGTH which is the
  max width of a volume name according to the BeBook and the Support Kit code. We'll
  deal with trying to stuff the volume name back into the exfat volume label later.
* Rename volume_name() to get_volume_name()
* Pass the name string length into get_volume_name() and use it to avoid buffer overrun.
* Fill name with a blank string if volume has no label.
* Don't memset the name with zeros before doing the conversion from Unicode to UTF-8,
  the conversion function will make sure the result is NUL-terminated if it returns B_OK.
* Also check the return value of the Unicode conversion function and return an error if it fails.
* Add get_default_volume_name() method to Utility.cpp which is used to fill out the default
  volume name in the case volume name is blank. e.g. 32GiB ExFAT Volume. This now
  applies to both the volume name and mount point.
* Use non-metric prefixes for default volume name, e.g. MiB, GiB, TiB
* For an unset volume name fill the volume name with an empty string.
* Remove the leading underscore from _name and _partition parameters
* Replace size constants with sizeof() calls
* Remove Axel from the copyright statement in Utility.cpp, he had nothing to do with it,
  add Jérôme (aka korli) because he wrote the code for get_default_volume_name()
  (was in Volumes.cpp)
* Remove some trailing spaces from encodings.cpp

Thanks Axel.
2014-02-05 20:09:33 -05:00
John Scipione
88e24cf64f Revert "exfat: limit backup volume name to 11 characters"
This reverts commit c79381d32a.
2014-02-05 20:09:32 -05:00
Jérôme Duval
4f57b13404 build_cross_tools_gcc4: enable posix threads.
* build kernel libgcc and libsupc++ with disabled posix threads for all
architectures. We currently change the configuration manually, as gcc
doesn't easily let us reconfigure without a full rebuild.
2014-02-05 23:38:18 +01:00
John Scipione
762b846cf8 exfat: Set the mountpoint to same as volume name
Fixes #10501

* update copyright headers, attribute to Haiku, Inc. add authors
* volume_name gets filled out by a utility function in Utility.cpp
* update exfat_entry
  - rename name_label to just label
  - adjust volume_label to have 11 uint16 chars plus 8 uint8 reserved
  - add guid partition info
* Added a couple new entry type defines
* fName is 34 bytes long which fits the 11 3-byte UTF-8 chars and a \0
2014-02-04 20:46:08 -05:00
John Scipione
c79381d32a exfat: limit backup volume name to 11 characters 2014-02-04 20:33:13 -05:00
John Scipione
aeb03a8f68 exfat: style fixes only 2014-02-04 20:32:35 -05:00
Axel Dörfler
a7119b44f2 ahci: Finally fixed TRIM support.
* The maximum number of allowed ranges is now taken into account.
* Still untested on my end, however, I tested the array copying code with
  a number of test data.
2014-02-05 00:20:31 +01:00
Stephan Aßmus
63a30a4744 Implemented using the transformation in Painter (incomplete)
* Also removed wonky BeOS rendering of stroked round rects and ellipses.
   Nobody would expect it to work like this. This affects stroked round rects
   and ellipsis with a pensize greater than 1.
 * Refactored common code from _StrokePath() and _FillPath().
 * _StrokePath() returned a curious bounding box that didn't take into
   acount the miter width. Now the bounding box is computed from the actual
   stroke conversion of the path.
2014-02-04 23:52:32 +01:00
Stephan Aßmus
2e7da8455a Fixed execute bits of AGG headers. 2014-02-04 23:51:49 +01:00
Stephan Aßmus
897f5562f9 Remove transform again from drawing coord conversion 2014-02-04 22:54:54 +01:00
Stephan Aßmus
a6db6bd40f Added WIP support for affine transformations to BViews.
Everything untested, but compiles, so it must work. The idea is to introduce
BAffineTransform additionally to the existing Origin and Scale properties of
BViews. One may use it in parallel or as an alternative. Painter in app_server
is not yet aware of the additional transformation. It is however already used
to transform drawing coordinates. It probably needs to work differently,
perhaps only in Painter and AGGTextRenderer.
2014-02-04 22:53:06 +01:00
Alexander von Gluck IV
339a018112 radeon_hd: Rework dp aux functions to take connector index
* This is less pretty, but we need access to the connector
  to find the HPD gpio pin mask on the card.
* dp_aux communications seem to work again.
* If you have a DisplayPort item attached to your card you
  may want to just unplug it at this point. We attempt DP
  link training and it fails. This failure will also cause
  other monitors to not function as app_server still isn't
  multi-head aware (#10486)
2014-02-03 20:20:13 -06:00
Stephan Aßmus
27a5783afc agg_clipped_alpha_mask.h: Partially revert previous commit.
There wasn't an out-of-bounds access, I read the code wrongly. Keep the code
in sync with the AGG version. What happens is that for x < 0 and xmax < 0,
the code will memset the x < 0 region twice, unless I am still irritated...
2014-02-04 00:05:54 +01:00
Stephan Aßmus
77214b5abc app_server: Implemented nested clipping paths
* The alpha mask is no longer stored with 75% more memory than needed,
   resolving a TODO.
 * AlphaMasks are now BReferenceables.
 * AlphaMasks are transferred to a pushed DrawState.
 * When an AlphaMask is set on a DrawState, it sets the previous state's
   mask to the AlphaMask. That one now takes care of updating not only itself,
   but the previous mask as well (which works recursively).
 * In AlphaMask::Generate(), a combination happens with the previous state's
   mask, which again works recursively in case the previous mask also needs
   to be updated. This step is combined with extracting the alpha channel from
   the UtilityBitmap used to play the ServerPicture.
 * Fixed some out of bounds access to memory in the "outside" case in
   agg_clipped_alpha_mask.h. This happened when the requested region was
   both before and after where the mask has data.
2014-02-03 23:45:52 +01:00
Stephan Aßmus
7bc9f84556 ClipToPicture test: Fixed nested states expected look. 2014-02-03 23:45:51 +01:00
Ingo Weinhold
d5ed97cd18 LibsolvSolver::GetResult(): Fix package update cases
* The transaction_type(.., ..., SOLVER_TRANSACTION_RPM_ONLY)
categorization of the transaction steps is incorrect since rpm
automatically replaces an older package version when a new one is
installed and thus such package removals would be omitted. Use a
simpler check instead.
* Omit the unnecessary explicit check whether a package really has to be
installed.

Thanks to Michael Schroeder @ SUSE for his help figuring this out.
2014-02-03 23:00:04 +01:00
Jonathan Schleifer
b55c918f57 Import gnuregex 0.12 and remove hardcoded paths
This is required on OS X and other systems which do not have the glibc
extensions for regular expressions (FreeBSD is not one of them as it
already includes gnuregex in /usr). With this there are no hardcoded
non-standard paths for OS X anymore.

regex.c and regex.h are from the official gnuregex 0.12 distribution,
the only modification is that I added __BEGIN_DECLS and __END_DECLS to
regex.h.
2014-02-03 18:27:35 +01:00
Alexander von Gluck IV
539a6cafc5 radeon_hd: More gpio rework
* Bump i2c data into it's own struct
* Populate gGPIOInfo with general gpio pins
  (for things like HPD, and voltage control)
* Attach HPD gpio pins to connectors
* Dump trace info of HPD pins as well as i2c pins
2014-02-03 17:02:08 +00:00
Alexander von Gluck IV
2b03285218 radeon_hd: Rework gpio pins
* There are GPIO pins for hotplug interrupts and i2c
  communications (for edid). Add two fields to connector
  (index for each in gGPIOInfo).
* DP aux communcation seems to want the hotplug GPIO pin
  info, which we don't get (I think this is why DP AUX comms
  is broken at the moment)
* GPIO LUT seems to know about a wide range of GPIO pins, while
  the i2c gpio calls only know about the ones needed for i2c.
* I'm tempted to populate gGPIOInfo with the LUT pins and
  then suplement that data with the i2c GPIO pins data.
  (however, not sure how many pins there are generally defined
  so it could impact performance. More investigation is needed)
  This would reverse how it works now with this commit.
2014-02-03 06:44:29 +00:00
Alexander von Gluck IV
8ebdc440de radeon_hd: Better tracing. Fix DP ack bitwise shift 2014-02-03 06:44:28 +00:00
Pawel Dziepak
f116370edd scheduler: Relax penalty cancellation requirements
Priority penalties were made more strict in order to prevent situation
when two or more high priority threads uses up all available CPU time
in such manner that they do not receive a penalty but starve low priority
threads.

However, a significant change to thread priorites has been made since and
now priority of all non real time threads varies in a range from 1 to
static priority minus penalty. This means that the scheduler is able to
prevent thread starvation without any complex penalty policies.
2014-02-03 04:55:16 +01:00
Pawel Dziepak
6155ab7b25 scheduler: Provide more stable core load statistics
Originially, core load was a sum of eastimated loads of all currently
running or ready threads on a given core. Such value is changing very
rapidly preventing the thread migration logic from making any reasonable
decisions.

This patch changes the way core load is computed to make it more stable
thus improving the qualitiy of decisions made by the thread migration logic.
Currently core load is a sum of estimated loads of all threads that have been
ready during last load measurement interval and haven't been migrated or
killed.
2014-02-03 04:55:16 +01:00
Pawel Dziepak
e6cfae450e kernel/x86: Make x2APIC CPU topology detection more future proof
The main reason for this patch is to fix gcc 4.8.2 warning about
hierarchyLevels possibly being used not initialized. Such thing
actually can not happen since all x2APIC CPUs are aware of at least
3 topology levels. However, once more topology levels are introduced
we will have to deal with CPUs that do not report information about all
of them.
2014-02-03 04:55:09 +01:00
Alexander von Gluck IV
4d449fccfe radeon_hd: Fix superfluous DPMS hook calls
* The DPMS hook would be called on all
  possible displays causing lots of link
  training on incomplete connector structures
  that may be not attached / connected.
2014-02-03 02:53:04 +00:00
Jonathan Schleifer
d229280a80 .gitignore: Remove the NFD entry
The correct way is to set precomposeunicode = true in .git/config so
that git handles NFC vs. NFD. Not sure what a good place to document
that would be, though.
2014-02-02 08:47:59 +01:00
Stephan Aßmus
b5364215d0 ClipToPicture: Correct the scaled clipping tests. 2014-02-01 23:22:23 +01:00
Stephan Aßmus
3c43cf1c40 OffscreenDrawingContext: Implement ResyncDrawState()
This is called whenever the DrawState is modified, so that it gets applied
to the DrawingEngine. Otherwise, the DrawingEngine works with an out-dated
state.
2014-02-01 23:15:21 +01:00
Stephan Aßmus
b971358df3 AlphaMasks: Use correct DrawState when playing picture
The current drawing state when the picture starts playing is the base
state that drawing commands in the picture itself should not be able to
modify. In the ClipToPicture test, the nested state test now at least
draws the last picture at the correctly scaled location.
2014-02-01 22:35:19 +01:00
Stephan Aßmus
ce2c561521 ServerPicture: Set correct pen location after DrawString() 2014-02-01 22:33:50 +01:00
Stephan Aßmus
7212dd427a ClipToPicture test: Start the interesting test.
* Also fix the compare graphics to what they are actually supposed to look
   for the nested states test.
2014-02-01 22:12:21 +01:00
Stephan Aßmus
ad3318b33d DrawState: Coding style cleanup 2014-02-01 22:11:55 +01:00
John Scipione
77acb43273 TextView: Remove Cmd+Up and Cmd+Down Shortcuts
to go to the beginning and end of the document.
2014-02-01 11:04:34 -05:00