Patch Name: PHSS_5607 Patch Description: s700 9.X Starbase 9.05 June Development Patch Creation Date: 95/06/13 Post Date: 95/06/22 Repost: 95/08/29 The patch was reposted with additional patch dependencies listed. An earlier problem with the patch was due to the missing dependent PEX patches PHSS_5856 and PHSS_5857. Hardware Platforms - OS Releases: s700: 9.01 9.03 9.05 Products: N/A Filesets: STAR-SHLIBS SBDL-SHLIBS STAR-RUN STAR-PRG SBDL-PRG Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700/9.X/PHSS_5607 Symptoms: PHSS_5607: - Using line_width(w,VDC_UNITS) with a transformation from viewing coordinates to vdc's that is anisotropic, wide lines appear distorted. Widelines were only scaled correctly along X. - Customer: Starbase application dumps core when moving window, PVRX only. Lab: If the window is moved completely off the screen (with just the window manager's title bar showing), the clip list is NIL. A dereference of this NIL pointer results in a core dump. The fix is to test for NIL before the dereference. - Introduced defect at R905 patch in which SBDL can try to free unallocated memory. - When switching fonts via "designate_character_set", it is possible that the wrong font is displayed. - Starbase visualizer driver fails to compile with ANSI compiler. While performing the conversion, the compiler found at least two minor errors in the code (missing / incorrect parameters to routines, invalid assignment statement, etc.). PHSS_5449: - Starbase widget ignores specified Colormap and creates its own. It also neglects to free the colormap when widge is destroyed. - Echo structure is not initialized correctly. This could cause failures of echos, core dumps during opening or closing of 3D graphics windows, or core dumps of the X server. This defect is only present on CRX family of devices. - Signals occuring while trying to open a graphics window for 3D rendering can cause it to not succeed. The device will not be recognized. - grmd object "echo list" does not get closed. A memory leak in the grmd daemon results. - Fixed a memory leak in gopen(). - On the SMD driver, if pattern fill of greater than 4x4 is used (such as 8x16 or 16x16), the user may find that the pattern offset changes across different invocations of the same application. - Gamma correction in 444 mode does not work. It only modifies one color. This problem was introduced with GSLdt05389 and GSLdt05537 in the last periodic patch. - Different Polygons may be lit differently when in one frame only ambient and one directional light are on and then in the next frame other lights on switched on. The polygons that are clipped may appear correct while polygons that are not clipped will appear incorrectly lit. - Whenever picking is done on a Y-concave polygon, inappropriate 'hits' can be reported in the concave portion of the primitive on certain drivers (sox11 and the device independent display list driver.) For example: __________ |________ | | | B | | A | | ___________| | |_____________| If the polygon were shaped like the figure above, picking at location 'B' would generate (incorrectly) a hit, picking at location 'A' would not generate a hit. - W3239961. Markers were one pixel larger than specified: nominal and minimum size markers were four pixels across rather than three; a marker at scale S were 3S + 1 pixels across instead of 3S (or 4S, for that matter). - The SB_DEFAULT_SOX11 environment variable has no effect in overlay planes. - Markers are currently depth-cued incorrectly when a perspective viewing projection is being used. What generally happens is that the markers are fully depth cued (rendered in the the depth cue color, rather than the specified marker color), regardless of their Z value. - Japanese.euc fonts were not being properly loaded if simply specified in a defaults file rather than using designate_character_set. PHSS_5099: - On HCRX24Z nothing is drawn for PEX wide lines when Anti -aliasing is on. - HCRX voxel code could sometimes lock up display. - PEX incorrectly lights and shades back faces. There are two aspects of the defect: - the diffuse and specular components of the color are incorrect; - when back face distinguishing is enabled, color per vertex information is not respected. - Double_buffer has poor performance when display buffer doesn't change. - PEX text that uses a polygonal font, e.g. any font whose name matches -hp-PEX polygonal*, does not respect the specified text color. - When 4/4 double buffering is first turned on, the display_enable mask is set incorrectly on the Internal and Integrated displays. - Enhancement to the pcltrans command to allow printing of images with Color Recovery. PHSS_4718: - When the CGM Interpreter, cgmiui, was run with either CADplt or CADplt2, the SP (select pen) command in the resulting hpgl or hpgl2 file (usually encoded for hpgl2) was often incorrect. With CADplt2, a segmentation error/core dump would sometimes occur. - The CGM Interpreter, cgmiui, failed to use the -m option (a config file) correctly. Also, when cgmiui was run with either CADplt or CADplt2, the SP (select pen) command in the resulting hpgl or hpgl2 file (usually encoded for hpgl2) was often incorrect. With CADplt2, a segmentation error/core dump would sometimes occur. - define_color_table on depth 12 windows corrupts malloc memory - Voxel (CUBIC_POLYPOINT gescape) double buffering was not working correctly on HCRX24. Images were incorrect. - Problems with HCRX block reads and writes near left edge of screen. Corrected HCRX block reads and writes that occur near left edge of screen. PHSS_4668: - The function pop_state() does not always correctly restore the depth cue color on CRX (hpA1659a). Depth cue color will now be correctly restored by pop_state(). - The function background_color_index(), whose behavior on CRX(hpA1659a) in CMAP_FULL mode is changed by gescape(fd,GCRX_SW_CMAP_FULL, ...), doesn't always work correctly after a call to that gescape. The function background_color_index() should now work right immediately after the gescape. - Can't disable dithering on CRX (hpA1659a) in CMAP_FULL mode by using Starbase fill_dither(fd, 1) or PHIGS pue240(WorkID, 1) Modified CRX driver to make dithering control consistent with other interfaces. - background_color_index fails after gescape GCRX_SW_CMAP_FULL fix the gescape so that it invalidates the current background color index, thus forcing it to be recalculated when next set - polyline_with_data3d() dumps core - problem for pro/e app Core dump associated with polyline_with_data3d() fixed. - Pixel replicate aborting on CRX/CRX24 devices. Improved handling cases of bad input parameters and large scale factors. - Voxels weren't always getting drawn when multi-pass clipping was in effect. Also, there was a memory leak due to alloc'd memory not always getting freed. Modified clip check tests. Fixed malloc/free problem. - HCRX24 voxels were only coming out in shades of blue. Corrected rendering mode for voxels. - Image disappears when 12:12 double buffering is turned off in 9.05. Code changes made to better match 9.03 behavior, such as starting 12:12 double buffering in the proper buffer. Also, notify X server of proper double buffer state. - Block move was only happening in one of the double buffers when double-buffering in 12:12 mode on CRX24/CRX24Z. The write mask was not getting set correctly for this double buffer mode when doing block moves. Modified write mask setup. - inttext with orientation along y axis core dumps due to floating point exception on 10.0, but draws incorrect primitives at 9.x. Now computes absolute max values correctly for radix matrix scaling. - The gescape R_LINE_TYPE does not draw any lines with hsr on. Enabled the appropriate rasterizer bidders to ignore this flag. Before, no rasterizer would bid on it and therefore no rasterizer would draw it. - PHIGS transparency appears to work irregularly The three elements that can produce transparency are no longer redundant - dot line type on sox11 driver was short dashes, set the environment variable SOX_DOTLN to disable this fix. changed dot type to be single pixels - When using double-buffered mode with 12/12 images on 24-plane devices, one or more of the following problems may occur: bitmap_to_file writes only two of the three display banks to the output file; OR file_to_bitmap did not read the file into the proper buffer (depending upon which buffer was written and which buffer was write-enabled when reading the data back in) Basically, the fix required changes to the underlying operation in the creation and processing of either 12/12 double-buffered images on a 24-plane device. Previously, when writing out the data, either the top nibble or the bottom nibble contained valid data, and the other nibble was left as 0's. The code was changed to duplicate the information from the valid nibble to the other nibble. This then allowed pcltrans and file-to-bitmap to work properly. As a side benefit, this also fixes some problems with imageview and sb2xwd|xwud utilities when processing Starbase bitmap files. Dependency] PHSS_4857, this is NOT part of the default dependency for this patch. - Intra-visual double-buffering in less than 8 planes on certain NGLE devices was not being correctly enabled and disabled, resulting in incorrect colors when focus moved out of and back into a window and after intra-visual double-buffering had been turned off. Double-buffering control code was modified to correctly update a shared memory display mask that is used only on certain NGLE devices. - Color recovery is not enabled when HCRX is configured as a second head . The properties indicating the presence of the Color Recovery colormaps were being examined incorrectly. - define_color_table on HP710, HP712, and CRX with SB_X_SHARED_CMAP modifies color map incorrectly Modified libsb.sl to handle define_color_table correctly when SB_X_SHARED_CMAP is set - define_color_table on HP710, HP712, and CRX with SB_X_SHARED_CMAP set doesn't modify color map. Modified libsb.sl to handle define_color_table correctly when SB_X_SHARED_CMAP is set PHSS_4633: - block_write sometimes writes left edge of area incorrectly in 12/12 double buffered mode on HCRX24. Fixes: Incorrect handling of left edge of a block_write area on some 4 byte boundaries is fixed. - write_enable can't select a buffer to block_write to in 12/12 HCRX24Z. Change handling of write_enable mask in hphcrx driver. - HLHSR picking ignores Z-buffer on Albert devices for both SBDL and PHIGS; picking in HLHSR situations may give different results. To force old behavior, use: export DL_PICK_INITIALIZE_Z=COMPAT - Image disappears when 12:12 double buffering is turned off. Code changes made to better match 9.03 behavior, such as starting 12:12 double buffering in the proper buffer. Also, notify X server of proper double buffer state. - Zbuffer block reads on CRX48Z may give erroneous data when width of read <= 4. Cleared up CRX48Z driver confusion about word/pixel and byte/pixel modes. - Pixel replicate may give incorrect results on hcrx devices. Numerous changes to fix image placement problems, core dumps, and correct modes for 24 bit cases. Two vm rasterizer bidders will now allow either kind of z-buffer compare, allowing PEX to perform as well as Starbase. PHSS_4249: - Linetyped vectors which don't fit into HCRX linetype hardware are significantly slower than they should be. [ds_modules/hyper/rasterizers/hyper_rasterizer_bidders.c: Removed check for RMF_CRAZY_LINETYPE in bidder ... only dodger rasterizers should check this ... so that Dodger, not general_line, is used to render these vectors when possible.] - graphinfo reports HCRX and HCRXZ instead of the correct HCRX8 and HCRX8Z. - PHIGS 3.0 text extents return wrong values when special characters are used such as vertical tab and back spaces. - PEX init may encounter "too many files open" problem in HCRX[24][Z]. - Performance tuning for voxels on HCRX-24[Z]. ala the CUBIC_POLYPOINT gescape. - Once 1/1, 2/2, 3/3 or 4/4 double-buffering is used on a CRX, CRX24Z or integrated 710 graphics display, 8/8 double-buffering will display incorrect results thereafter. If focus moves out of the window and back into it on any of these devices, incorrect colors can be displayed. - Tearing effects can be observed with PEX double-buffering on CRX displays. - FORTRAN programs dump core whenever make_x11_gopen_string is called - When doing VM double buffering, block_move() will never happen in the VM back buffer. - starbase.c.h header file is not correct for C++. The function prototypes for the c_move[23]d c_draw[23]d functions were missing. C++ promotes floats to doubles when passing parameters by default. Changed the define to point to K&R entrypoints for C++. - Improved bspline trimming capabilities when large step size/polygons are used. - GCRX_PIXEL_REPLICATE gescape could cause program abort on CRX24(Z) and CRX48Z. - When perimeter_type() is called more than once without any intervening rendering, arc() sometimes renders with the wrong perimeter type. - await_retrace() function does not work with gcrx or hcrx drivers - DC primitives with large values cause unpredictable results from rasterizer. Customer requests to have the primitives clipped. - Starbase function inquire_sizes reports different results when using sox11 vs hpvmx (or any other) driver. Defect Description: PHSS_5607: See Symptoms PHSS_5449: See Symptoms PHSS_5099: See Symptoms PHSS_4718: See Symptoms PHSS_4668: See Symptoms PHSS_4633: See Symptoms PHSS_4249: See Symptoms SR: 1653082636 1653088864 1653089235 5003197970 1653080317 1653095562 5003206920 5003211557 5003154393 1653095562 1653101378 5003200758 5003211011 1653103887 5003249060 5003253351 1653130724 5003131466 Patch Files: /usr/lib/libsb1.a /usr/lib/libsb2.a /usr/lib/libsbdl.a /usr/lib/libsbXg.a /usr/lib/libdd98765.a /usr/lib/libdd98766.a /usr/lib/libdd98704.a /usr/lib/libdd98705.a /usr/lib/libddhcrx.a /usr/lib/libddcrx48z.a /usr/lib/libddgcrx.a /usr/lib/libddsox11.a /usr/lib/libdddl.a /usr/lib/libddsbv.a /usr/lib/libsb.sl /usr/lib/libsbdl.sl /usr/lib/libsbXg.sl /usr/lib/libdd98765.sl /usr/lib/libdd98766.sl /usr/lib/libdd98704.sl /usr/lib/libdd98705.sl /usr/lib/libddhcrx.sl /usr/lib/libddcrx48z.sl /usr/lib/libddgcrx.sl /usr/lib/libddvmx.sl /usr/lib/libddsox11.sl /usr/lib/libdddl.sl /usr/lib/libddsbv.sl /usr/include/starbase.c.h /usr/bin/graphinfo /usr/lib/starbase/stroke/markers /usr/lib/nls/C/sb.cat what(1) Output: /usr/lib/libsb1.a: GRAPHICS CORE R905_P7 BRANCH 950608libsb1.a $Revisio n: 510.1.200.1 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch GRAPHICS CORE R905_P7 BRANCH 950608libsga $Revision: 510.1.200.13 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch GRAPHICS CORE R905_P7 BRANCH 950608libddvmx $Revisio n: 510.1.200.9 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch $Revision: 510.1.200.7 $ Prototype VM-Xlib rasteriz ers GRAPHICS CORE R905_P7 BRANCH 950608libddnull $Revisi on: 510.1.200.1 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libsb2.a: GRM Library HP-UX 8.0 A.01 Protocol PROTO_VER F ILE_VERSION GRAPHICS CORE R905_P7 BRANCH 950608libsb2.a $Revisio n: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libsbdl.a: GRAPHICS CORE R905_P7 BRANCH 950608libsbdl.a $Revisi on: 510.1.200.9 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libsbXg.a: GRAPHICS CORE HP-UX 9.0 930315 libsbXg /usr/lib/libdd98765.a: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98735.a $R evision: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdd98766.a: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98736.a $R evision: 510.1.200.4 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdd98704.a: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98704.a $R evision: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdd98705.a: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98705.a $R evision: 510.1.200.1 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddhcrx.a: GRAPHICS CORE R905_P7 BRANCH 950608libddhyper $Revis ion: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddcrx48z.a: GRAPHICS CORE R905_P7 BRANCH 950608libddcrx48z $Revi sion: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddgcrx.a: GRAPHICS CORE R905_P7 BRANCH 950608libddgcrx $Revisi on: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddsox11.a: GRAPHICS CORE R905_P7 BRANCH 950608libddsox11.a $Rev ision: 510.1.200.8 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdddl.a: GRAPHICS CORE R905_P7 BRANCH 950608libdddl.a $Revisi on: 510.1.200.2 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddsbv.a: GRAPHICS CORE R905_P7 BRANCH 950608libddsbv.a $Revis ion: 510.1.200.2 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libsb.sl: GRAPHICS CORE R905_P7 BRANCH 950608libsb.sl $Revisio n: 510.1.200.1 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch GRAPHICS CORE R905_P7 BRANCH 950608libsga $Revision: 510.1.200.13 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch GRAPHICS CORE R905_P7 BRANCH 950608libsb2.a $Revisio n: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch GRM Library HP-UX 8.0 A.01 Protocol PROTO_VER F ILE_VERSION /usr/lib/libsbdl.sl: GRAPHICS CORE R905_P7 BRANCH 950608libsbdl.a $Revisi on: 510.1.200.9 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libsbXg.sl: GRAPHICS CORE HP-UX 9.0 930315 libsbXg /usr/lib/libdd98765.sl: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98735.a $R evision: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdd98766.sl: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98736.a $R evision: 510.1.200.4 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdd98704.sl: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98704.a $R evision: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdd98705.sl: GRAPHICS CORE R905_P7 BRANCH 950608 libdd98705.a $R evision: 510.1.200.1 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddhcrx.sl: GRAPHICS CORE R905_P7 BRANCH 950608libddhyper $Revis ion: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddcrx48z.sl: GRAPHICS CORE R905_P7 BRANCH 950608libddcrx48z $Revi sion: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddgcrx.sl: GRAPHICS CORE R905_P7 BRANCH 950608libddgcrx $Revisi on: 510.1.200.3 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddvmx.sl: GRAPHICS CORE R905_P7 BRANCH 950608libddvmx $Revisio n: 510.1.200.9 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch $Revision: 510.1.200.7 $ Prototype VM-Xlib rasteriz ers /usr/lib/libddsox11.sl: GRAPHICS CORE R905_P7 BRANCH 950608libddsox11.a $Rev ision: 510.1.200.8 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libdddl.sl: GRAPHICS CORE R905_P7 BRANCH 950608libdddl.a $Revisi on: 510.1.200.2 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/libddsbv.sl: GRAPHICS CORE R905_P7 BRANCH 950608libddsbv.a $Revis ion: 510.1.200.2 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/include/starbase.c.h: No what string for this file /usr/bin/graphinfo: GRAPHICS CORE R905_P7 BRANCH 950608 /usr/bin/graphi nfo revision: 3.0 date: 93/02/08 $ PHSS_5607/5608 June 95 Starbase/CORE Periodic Patch /usr/lib/starbase/stroke/markers: No what string for this file /usr/lib/nls/C/sb.cat: No what string for this file sum(1) Output: 53797 4864 /usr/lib/libsb1.a 53493 785 /usr/lib/libsb2.a 58156 1426 /usr/lib/libsbdl.a 21839 31 /usr/lib/libsbXg.a 42237 248 /usr/lib/libdd98765.a 40182 752 /usr/lib/libdd98766.a 12418 192 /usr/lib/libdd98704.a 36917 456 /usr/lib/libdd98705.a 38791 392 /usr/lib/libddhcrx.a 26300 320 /usr/lib/libddcrx48z.a 63900 592 /usr/lib/libddgcrx.a 59978 112 /usr/lib/libddsox11.a 1159 11 /usr/lib/libdddl.a 15029 144 /usr/lib/libddsbv.a 58787 5144 /usr/lib/libsb.sl 13141 1360 /usr/lib/libsbdl.sl 16270 56 /usr/lib/libsbXg.sl 39131 344 /usr/lib/libdd98765.sl 19106 904 /usr/lib/libdd98766.sl 10853 272 /usr/lib/libdd98704.sl 3266 584 /usr/lib/libdd98705.sl 37447 472 /usr/lib/libddhcrx.sl 7684 400 /usr/lib/libddcrx48z.sl 12522 696 /usr/lib/libddgcrx.sl 21912 448 /usr/lib/libddvmx.sl 50412 184 /usr/lib/libddsox11.sl 55537 24 /usr/lib/libdddl.sl 33933 208 /usr/lib/libddsbv.sl 18254 212 /usr/include/starbase.c.h 22303 64 /usr/bin/graphinfo 48694 2 /usr/lib/starbase/stroke/markers 51129 54 /usr/lib/nls/C/sb.cat Patch Conflicts: None Patch Dependencies: s700: 9.01 9.03: PHSS_4565 and PHSS_4485 and PHSS_4505 and (PHSS_5856 or PHSS_5857) s700: 9.05: PHSS_5856 or PHSS_5857 Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_4249 PHSS_4633 PHSS_4668 PHSS_4718 PHSS_5099 PHSS_5449 Equivalent Patches: None Patch Package Size: 10950 Kbytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Copy the patch to your /tmp directory and unshar it: cd /tmp cp patch_source/PHSS_5607 . sh PHSS_5607 3. Become root and run update: /etc/update 4. Use the cursor keys to select "Change Source or Destination ->" and press [Return]. 5. Select "From Tape Device to Local System ..." in the Change window and 6. Change "Source: /dev/rmt/0m" to "Source: /tmp/PHSS_5607.updt" 7. Press "Done" (f4). 8. Follow the standard directions for update. Update moves the original software to /system/PHSS_5607/orig. Keep this file to recover from any potential problems. You should move the .text file to /system/PHSS_5607 for future reference. To put this patch on a magnetic tape and update from the tape drive, use dd: dd if=PHSS_5607.updt of=/dev/rmt/0m bs=2048 Special Installation Instructions: Be sure that applications using Starbase are NOT running and that the X-server is NOT running before installing this patch. Executables may appear "busy" to the file system and therefore unwritable because HP-UX uses the executable's image on disk as swap for code segments. The same is true for shared libraries because they are executable images as well.