Merge remote-tracking branch 'origin/release/1.9.x'

This commit is contained in:
rdb 2016-06-23 16:14:18 +02:00
commit 6728e5ecbe
10 changed files with 39 additions and 20 deletions

View File

@ -1,3 +1,21 @@
------------------------ RELEASE 1.9.3 ------------------------
This issue fixes several bugs that were still found in 1.9.2.
* Fix crash when running in Steam on Linux when using OpenAL
* Fix crash using wx/tkinter on Mac as long as want-wx/tk is set
* Fix loading models from 'models' package with models/ prefix
* Fix random crashes in task system
* Fix memory leaks in BulletTriangleMesh
* Fix loading old models with MovingPart<LMatrix4f>
* Improve performance of CPU vertex animation somewhat
* Show framebuffer properties when fbprop request fails
* Fix hang on exit when using Python task on threaded task chain
* Fix inability to get RGBA renderbuffer in certain cases
* Work around GLSL issue with #pragma and certain Intel drivers
* Improve performance of texture load and store operations
* Fix crashes with pbuffers on Intel cards on Windows
------------------------ RELEASE 1.9.2 ------------------------
This is a minor bugfix release, fixing a few minor issues that

View File

@ -597,6 +597,9 @@ remove_all_windows() {
// And, hey, let's stop the vertex paging threads, if any.
VertexDataPage::stop_threads();
// Stopping the tasks means we have to release the Python GIL while
// this method runs (hence it is marked BLOCKING), so that any
// Python tasks on other threads won't deadlock grabbing the GIL.
AsyncTaskManager::get_global_ptr()->stop_threads();
#ifdef DO_PSTATS

View File

@ -53,7 +53,7 @@ class Texture;
class EXPCL_PANDA_DISPLAY GraphicsEngine : public ReferenceCount {
PUBLISHED:
GraphicsEngine(Pipeline *pipeline = NULL);
~GraphicsEngine();
BLOCKING ~GraphicsEngine();
void set_threading_model(const GraphicsThreadingModel &threading_model);
GraphicsThreadingModel get_threading_model() const;
@ -94,7 +94,7 @@ PUBLISHED:
bool add_window(GraphicsOutput *window, int sort);
bool remove_window(GraphicsOutput *window);
void remove_all_windows();
BLOCKING void remove_all_windows();
void reset_all_windows(bool swapchain);
bool is_empty() const;

View File

@ -1625,11 +1625,11 @@ cg_compile_entry_point(const char *entry, const ShaderCaps &caps,
compiler_args[nargs++] = "ATI_draw_buffers";
}
char version_arg[16];
string version_arg;
if (!cg_glsl_version.empty() && active != CG_PROFILE_UNKNOWN &&
cgGetProfileProperty((CGprofile) active, CG_IS_GLSL_PROFILE)) {
string version_arg("version=");
version_arg = "version=";
version_arg += cg_glsl_version;
compiler_args[nargs++] = "-po";

View File

@ -393,9 +393,8 @@ INLINE_LINMATH size_t FLOATNAME(LVecBase2)::
add_hash(size_t hash) const {
TAU_PROFILE("size_t LVecBase2::add_hash(size_t)", " ", TAU_USER);
#ifdef FLOATTYPE_IS_INT
int_hash ihasher;
hash = ihasher.add_hash(hash, _v(0));
hash = ihasher.add_hash(hash, _v(1));
hash = int_hash::add_hash(hash, _v(0));
hash = int_hash::add_hash(hash, _v(1));
return hash;
#else
return add_hash(hash, NEARLY_ZERO(FLOATTYPE));

View File

@ -528,10 +528,9 @@ INLINE_LINMATH size_t FLOATNAME(LVecBase3)::
add_hash(size_t hash) const {
TAU_PROFILE("size_t LVecBase3::add_hash(size_t)", " ", TAU_USER);
#ifdef FLOATTYPE_IS_INT
int_hash ihasher;
hash = ihasher.add_hash(hash, _v(0));
hash = ihasher.add_hash(hash, _v(1));
hash = ihasher.add_hash(hash, _v(2));
hash = int_hash::add_hash(hash, _v(0));
hash = int_hash::add_hash(hash, _v(1));
hash = int_hash::add_hash(hash, _v(2));
return hash;
#else
return add_hash(hash, NEARLY_ZERO(FLOATTYPE));

View File

@ -521,11 +521,10 @@ INLINE_LINMATH size_t FLOATNAME(LVecBase4)::
add_hash(size_t hash) const {
TAU_PROFILE("size_t LVecBase4::add_hash(size_t)", " ", TAU_USER);
#ifdef FLOATTYPE_IS_INT
int_hash ihasher;
hash = ihasher.add_hash(hash, _v(0));
hash = ihasher.add_hash(hash, _v(1));
hash = ihasher.add_hash(hash, _v(2));
hash = ihasher.add_hash(hash, _v(3));
hash = int_hash::add_hash(hash, _v(0));
hash = int_hash::add_hash(hash, _v(1));
hash = int_hash::add_hash(hash, _v(2));
hash = int_hash::add_hash(hash, _v(3));
return hash;
#else
return add_hash(hash, NEARLY_ZERO(FLOATTYPE));

View File

@ -226,7 +226,7 @@ BMPreadinfoheader(
* for the required total.
*/
if (classv != C_OS2) {
for (int i = 0; i < cbFix - 16; i += 4) {
for (int i = 0; i < (int)cbFix - 16; i += 4) {
GetLong(fp);
}
}

View File

@ -649,10 +649,10 @@ writePackedRawRow(ostream * const fileP,
const unsigned char * const packed_bits,
int const cols) {
int bytesWritten;
fileP->write((const char *)packed_bits, pbm_packed_bytes(cols));
if (fileP->fail())
if (fileP->fail()) {
pm_error("I/O error writing packed row to raw PBM file.");
}
}
static void

View File

@ -40,7 +40,8 @@ get_context() const {
context->AddReference();
return py_context.ptr();
} catch (const python::error_already_set& e) {
} catch (const python::error_already_set &e) {
(void)e;
// Return NULL, which will trigger the exception in Python
}
return NULL;